Zend Framework URI de espacio de codificación en PHP y Javascript
-
21-09-2019 - |
Pregunta
Tengo una Zend Framework URI como / controlador / acción / var1 / valor1 / var2 / valor2.
-
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?
-
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?
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; -)