Opis
string
urlencode
( string str)
Zwraca
łańcuch
w
którym
wszystkie
nie
alfanumeryczne
znaki
z
wyjątkiem
zostały zastąpione przez dwie cyfry szesnastkowe poprzedzone
znakiem procenta (
%
), a spacje kodowane są jako znak (
+
). To kodowanie jest takie same jak wykorzystywane przy
przesyłaniu danych z formularzy WWW, tj. takie samo jak w media
typie:
application/x-www-form-urlencoded
. Różni się od kodowania z RFC1738 (zobacz
rawurlencode()
) tym, że z powodów historycznych, spacje są kodowane jako znak
plus (+). Funkcja ta jest odpowiednia do zakodowania łańcucha
używanego w zapytaniu URL oraz jako zmienna przekazywana do
następnej strony:
Przykład
1
.
urlencode(
)
przykład
|
Notka
:
Uważaj
na
zmienne
,
które
mogą
zawierać
HTML
'
owe
encje
.
Rzeczy
jak
amp
,
copy
i
pound
są
przetwarzane
przez
przeglądarkę
i
ich
aktualna
postać
jest
używana
dalej
zamiast
porządanej
nazwy
zmiennej
.
To
jest
oczywisty
problem
,
o
którym
W3C
informuje
ludzi
od
lat
.
Referencje
są
tutaj
:
http
:
/
/www.w3.org
/
TR
/
html4
/
appendix
/
notes.html#h-B.2.2
Referencje
są
tutaj
:
http
:
/
/www.w3.org
/
TR
/
html4
/
appendix
/
notes.html#h-B.2.2
PHP
obsługuje
zmianę
separatora
argumentów
na
zalecany
przez
W3C
średnik
poprzez
dyrektywę
arg_separator
.ini
.
Niestety
większość
przeglądarek
nie
wysyła
danych
z
formularza
w
formacie
używającym
średnik
jako
separator
.
Bardziej
przenośnym
rozwiązaniem
jest
użycie
amp
;
jako
separatora
zamiast
.
Nie
musisz
zmieniać
PHP
'
owego
arg_separator
aby
to
uzyskać
.
Zostaw
separator
jako
,
ale
koduj
swoje
URL'
e
używając
htmlentities(
)
(urlencode($data)
)
.
Przykład
2
.
urlencode
/
htmlentities(
)
przykład
|
Patrz
także
:
urldecode(
)
,
htmlentities(
)
,
rawurldecode(
)
,
rawurlencode(
)
.