Manuel PHP
Précédent
Suivant
urlencode() retourne une chaîne dont les caractères non alpha-numériques (hormis -_.) sont remplacés par des séquences commençant par un caractère pourcentage (%), suivi de deux chiffres hexadécimaux.
Les espaces sont remplacés par des signes plus (+).
Ce codage est celui qui est utilisé pour poster des informations dans les formulaires HTML.
Le type MIME est application / x-www-form-urlencoded.
Ce codage est différent de celui spécifié dans la RFC1738 (voir rawurlencode()): pour des raisons historiques, les espaces sont remplacés par des signes plus (+). urlencode() est pratique pour transmettre des informations via une URL.
C'est aussi un moyen de passer des informations d'une page à l 'autre.
Exemple 1.
Exemple avec urlencode()
?php echo 'A HREF="moncgi?foo=', urlencode ($userinput),' "';?
Voir aussi urldecode().
Faites bien attention aux variables qui ressemblent à des entités HTML, comme par exemple amp, copy et pound, qui sont analysées par le client web et remplacée par leur valeur.
C 'est un vrai problème qui a été montré par le W3C depuis longtemps.
La référence est ici: http: / /www.w3.org / TR / html4 / appendix / notes.html#h-B.2.2.
PHP supporte le remplacement de séparateur d 'arguments par un point-virgule, comme recommandé par le W3C, grâce à la directive arg_separator .ini.
Malheureusement, la plupart des clients web n 'envoient pas leurs données de formulaire avec des points-virgules.
Une solution plus portable est d'utiliser amp; à la place de comme séparateur.
Vous n 'avez alors pas à changer la directive arg_separator.
Laissez-la à, mais encodez vos URL avec htmlentities().
Exemple 2.
Exemple avec urlencode() et htmlentities()
?php echo 'A HREF="moncgi?foo=', htmlentities (urlencode ($userinput)),' "';?
Voir aussi urldecode(), htmlentities(), rawurldecode() et rawurlencode().
Précédent
Sommaire
Suivant
Niveau supérieur
Variables