PHP: ¿convertir espacios en cadena en% 20?

1 minuto de lectura

avatar de usuario
mate

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

Aquí está mi intento:

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

la salida es "What+happens+here%3F"por lo que los espacios no se representan como %20.

¿Qué estoy haciendo mal?

Utilizar el rawurlencode función en su lugar.

  • Tenga cuidado si usa esto para la URL (no su parte de consulta), la barra inclinada convertida hará que la URL no funcione. Entonces, si solo necesita ocuparse de los espacios (tal vez para esa URL), sugiero str_replace.

    – Lukáš Řádek

    10 oct 2019 a las 11:04


avatar de usuario
Alnitak

El signo más es la codificación histórica de un carácter de espacio en los parámetros de URL, como documentado en la ayuda Para el urlencode() función.

Esa misma página contiene la respuesta que necesita: use rawurlencode() en lugar de conseguir RFC 3986 codificación compatible.

Creo que, si necesitas usar el %20 variante, tal vez podrías usar rawurlencode().

¿Ha sido útil esta solución?