8.134 URL
8 Référence des fonctions
Manuel PHP
. Introduction . Pré-requis . Installation . Configuration à l'exécution . Types de ressources . Constantes pré-définies . base64_decode . base64_encode . get_headers . get_meta_tags . http_build_query . parse_url . rawurldecode . rawurlencode . urldecode ->urlencode
|
8.134.16 urlencode()Encode une chaîne en URL[ Exemples avec urlencode ] PHP 3, PHP 4, PHP 5
string
urlencode (
string
str
)
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.
| Exemple avec urlencode |
<?php echo '<a href="moncgi?foo=', urlencode ($userinput), '">'; ?>
|
Note: Faites bien attention aux variables qui ressemblent à
des entités HTML, comme &, © et £,
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.php#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 avec urlencode et htmlentities |
<?php $query_string = 'foo=' . urlencode($foo) . '&bar=' . urlencode($bar); echo '<a href="moncgi?' . htmlentities($query_string) . '">'; ?>
|
Voir aussi
urldecode
,
htmlentities
,
rawurldecode
et
rawurlencode
.
|