urlencode

(PHP 3, PHP 4 )

urlencode -- URL-kódol egy karakterláncot

Leírás

string urlencode ( string str)

Visszaad egy karakterláncot, amiben minden nem alfanumerikus karakter, kivéve a -_. karaktereket, százalék jelre (%) és két hexa számra cserélt, és a szóközök helyén plusz jelek (+) állnak. Ez az a kódolási forma, amivel a kérdőívekkel küldött adatok a weben közlekednek, azaz az application/x-www-form-urlencoded média típus. Ez annyiban különbözik az RFC1738 kódolástól (rawurlencode()), hogy történelmi okok miatt a szóközök itt plusz (+) jelekké alakulnak. Ez a függvény kényelmes lehetőséget ad arra, hogy az URL kérdőjel utáni részébe írjunk, változókat átadva a következő oldalnak:

Példa 1. urlencode() példa

echo '<a href="ujoldal.php?ize=', urlencode($valtozo), '">';

Figyelem: Vigyázz az olyan változókkal, amelyek neve HTML entitások nevével kezdődik. Az olyan karaktersorozatokat, mint &amp, &copy és &pound a böngészők lecserélik a megfelelő entitásra, és nem a várt eredményt kapod. Ez egy nyilvánvaló probléma, amire a W3C már évekkel ezelőtt felhívta a figyelmet. A referencia itt olvasható: http://www.w3.org/TR/html4/appendix/notes.html#h-B.2.2. A PHP támogatja a paraméter-elválasztó karakter megváltoztatását, a W3C által javasolt pontosvesszőre, az arg_separator nevű .ini beállítással. Sajnálatosan a legtöbb böngésző nem támogatja ezt az elválasztókaraktert. Egy hordozhatóbb módszer az &amp; használata az & karakter helyett elválasztóként. Így nem kell megváltoztatnod a PHP arg_separator beállítását sem. Hagyd ezt & értéken, de használd az URL kódoláshoz a htmlentities()(urlencode($adat)) módszert.

Példa 2. urlencode/htmlentities() példa

echo '<a href="ujoldal.php?ize=', htmlentities(urlencode($valtozo)), '">';

Lásd még: urldecode(), htmlentities(), rawurldecode() és rawurlencode()!