Pergunta

Eu tenho um URI do Zend Framework como /controller/action/var1/value1/var2/value2 .

  1. Value2 contém um caractere de espaço.Como devo codificá-lo em PHP?Quando uso urlencode com valor2, isso converte o espaço em '+' em vez de '%20f'.Tudo bem?

  2. Este valor2 também é adicionado a um local href por javascript no lado do cliente.Estou usando a função de escape lá, mas quando clico no link não vejo '+' nem '%20f' na barra de endereços do Firefox.Porém, quando o vejo na guia 'net' do firebug, vejo% 20f.

Quais funções devo usar em PHP e javascript?

Foi útil?

Solução

Sobre sua primeira pergunta, essa é a diferença entre urlencode e rawurlencode :

var_dump(urlencode("hello, world"));

Te pegarei:

string 'hello%2C+world' (length=14)

Enquanto

var_dump(rawurlencode("hello, world"));

vai te pegar:

string 'hello%2C%20world' (length=16)

Suponho que ambos deveriam estar bem;mas sinta-se à vontade para tentar, só para garantir ;-)


Sobre o segundo ponto:O Firefox tenta tornar as URLs "mais bonitas", exibindo-as de uma forma legível por humanos, em vez de codificadas - o que é ruim para nós, desenvolvedores, mas bom para os usuários finais.

Por exemplo, se eu digitar este URL na barra de endereços do Firefox:

http://tests/temp/temp.php?a=hello%2C%20world

Quando eu pressiono o digitar chave, ela é automaticamente traduzida para

http://tests/temp/temp.php?a=hello%2C%20world

Se funcionar do jeito que você está fazendo (e, como você está vendo uma URL codificada com Firebug, provavelmente está funcionando), está tudo bem ;-)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top