78 votes

php: convertir les espaces de la chaîne en% 20?

hé les gars, désolé pour la question ennuyeuse. googlé beaucoup, ne peut pas le faire fonctionner.

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

la sortie ressemble à ceci "Que + se passe + ici% 3F" ... mais les espaces ne sont pas représentés comme% 20? qu'est-ce que je fais mal ici?

186voto

Matthew Flaschen Points 131723

Utilisez plutôt la fonction rawurlencode .

26voto

Alnitak Points 143355

Le signe plus est l'encodage historique d'un caractère d'espace dans les paramètres d'URL, comme indiqué dans l'aide pour la fonction urlencode() .

Cette même page contient la réponse dont vous avez besoin - utilisez plutôt rawurlencode() pour obtenir un codage compatible RFC 3986 .

20voto

David Thomas Points 111253

Je crois que, si vous avez besoin d'utiliser la variante %20 , vous pouvez peut-être utiliser rawurlencode() .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X