urlencode

urlencode -- URL-kódovat řetězec

Popis

string urlencode ( string str)

Vrátí řetězec , ve kterém byly všechny nealfanumerické znaky kromě -_ . nahrazeny znakem procent ( % ) následovaným dvěma šestnácktovými číslicemi a mezery kódovány jako znaky plus ( + ) . Kódování je stejné jako u dat postovaných z WWW formuláře , tj . stejně jako u application / x-www-form-urlencoded typu . To se liší od RFC1738 kódování ( viz rawurlencode( ) ) v tom , že z historických důvodů se mezery kódují jako znaky plus ( + ) . Tato funkce je vhodná při kódování řetězce , který se použít jako query část URL jako příhodný způsob předání proměnných na další stránku :

Příklad 1 . Příklad urlencode( )

 
echo

 
'

 
A

 
HREF="mycgi?foo='

 
,

 
urlencode

 
($userinput)

 
,

 
'

 
"

 
'

 
;





Poznámka : pozor při předávání proměnných , které by mohly odpovídat HTML entitám . Věci jako amp , copy a pound browser analyzuje a místo požadovaného jména proměnné použije odpovídající entitu . To je zřejmý problém , na který W3C upozorňuje léta . Příručka je tady : http : / /www.w3.org / TR / html4 / appendix / notes.html#h-B.2.2 Příručka je tady : http : / /www.w3.org / TR / html4 / appendix / notes.html#h-B.2.2 PHP podporuje změnu oddělovače argumentů na středník doporučovaný W3C skrze .ini direktivu arg_separator . Bohužel , většina uživatelských programů neposílá data z formulářů v tomto formátu . Přenositelnější formou je použít jako oddělovač amp ; místo . Na to nemusíte měnit arg_separator . Nechte ho na , ale kódujte URL pomocí htmlentities( ) (urlencode($data) ) .

Příklad 2 . Příklad na urlencode / htmlentities( )

 
echo

 
'

 
A

 
HREF="mycgi?foo='

 
,

 
htmlentities

 
(urlencode

 
($userinput

 
)

 
)

 
,

 
'

 
"

 
'

 
;





Viz také urldecode( ) , htmlentities( ) , rawurldecode( ) , rawurlencode( ) .