PHP: converti gli spazi nella stringa in% 20?


86

Come posso convertire gli spazi nella stringa in %20?

Ecco il mio tentativo:

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

L'output è "What+happens+here%3F", quindi gli spazi non sono rappresentati come %20.

Che cosa sto facendo di sbagliato?

Risposte:


201

Usa rawurlencodeinvece la funzione.


1
Fai attenzione se lo usi per l'URL (non la sua parte di query), la conversione barrata farà sì che l'URL non funzioni. Quindi, se hai solo bisogno di occuparti degli spazi (forse per quell'URL), suggerisco str_replace.
Lukáš Řádek

26

Il segno più è la codifica storica per un carattere di spazio nei parametri URL, come documentato nella guida della urlencode()funzione.

La stessa pagina contiene la risposta di cui hai bisogno: usala rawurlencode()invece per ottenere la codifica compatibile RFC 3986 .


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.