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