Pregunta

Tengo una Zend Framework URI como / controlador / acción / var1 / valor1 / var2 / valor2.

  1. Valor2 tiene un carácter de espacio en ella. ¿Cómo debería codificar en PHP? Cuando utilizo urlencode con valor2, esto convierte el espacio en '+' en lugar de '% 20f'. ¿Es esto correcto?

  2. Esta valor2 también se agrega a una ubicación href por javascript en el lado del cliente. Estoy usando función de escape de allí, pero cuando lo haga clic aquí I ni ver '+' ni '% 20f' en la barra de direcciones de Firefox. Aunque cuando lo veo en Firebug pestaña 'red', veo% 20f.

¿Qué funciones debería utilizar en PHP y Javascript?

¿Fue útil?

Solución

Sobre su primera pregunta, que es la diferencia entre urlencode y rawurlencode :

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

Le conseguirá:

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

Mientras

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

le conseguirá:

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

supongo que ambos deben estar bien; pero no dude en darle una oportunidad, por si acaso; -)


Sobre el segundo punto: Firefox trata de hacer que las direcciones URL "más bonita", mostrándolos en una forma legible por humanos, en lugar de codificado - lo que es malo para nosotros desarrolladores de, pero agradable a los usuarios finales

.

Por ejemplo, si escribe esta URL en la barra de direcciones de Firefox:

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

Al pulsar el tecla enter , se traduce automáticamente a

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

Si funciona de la manera que lo está haciendo (y, como usted está viendo una URL codificada con Firebug, que probablemente está funcionando) , bien de todo; -)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top