urlencode

urlencode -- Encode une chaîne en URL.

Description

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 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( ) .