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 RFC 1738 (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.
Note : faites bien attention aux variables qui ressemblent à
des entités HTML, comme &, © et £,
qui sont analysées par le client web et remplacées 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
du fichier php.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 &
à la place de & comme
séparateur. Vous n'avez alors pas à changer la directive
arg_separator
. Laissez-la à &, mais encodez vos URL
en utilisant htmlentities() ou
htmlspecialchars().
Exemple 2. Exemple avec urlencode() et htmlentities()
|
Voir aussi urldecode(), htmlentities(), rawurldecode() et rawurlencode().
Précédent | Sommaire | Suivant |
urldecode | Niveau supérieur | Fonctions de gestion des variables |