2011-04-06 19 views
60

¿Cómo puedo convertir espacios en cadena en %20?PHP: convertir espacios en cadena en% 20?

Aquí es mi intento:

$str = "What happens here?"; 
echo urlencode($str); 

La salida es "What+happens+here%3F", por lo que los espacios no están representados como %20.

¿Qué estoy haciendo mal?

Respuesta

142

Utilice la función rawurlencode en su lugar.

21

El signo más es la codificación histórica de un carácter de espacio en los parámetros de URL, como documented in the help para la función urlencode().

Esa misma página contiene la respuesta que necesita: use rawurlencode() para obtener la codificación compatible con RFC 3986.

17

Creo que, si necesita utilizar la variante %20, quizás pueda usar rawurlencode().

Cuestiones relacionadas