Compzone.Org :: Podręcznik PHP :: urlencode
Pytania w drugiej edycji Testu PHP powinny być:
Trudniejsze
Łatwiejsze
Skomplikowane
Na myślenie
Do liczenia
Sonda Wyniki

Add to Google

urlencode

(PHP 3, PHP 4, PHP 5)

urlencode -- Koduje łańcuch metodą kodowania URLi

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

<?php
echo '<a href="manualphp-mycgi?foo='urlencode($userinput), '">';
?>

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

Przykład 2. urlencode() i htmlentities() przykład

<?php
$query_string 
'foo=' urlencode($foo) . '&bar=' urlencode($bar);
echo 
'<a href="manualphp-mycgi?' htmlentities($query_string) . '">'
?>

Patrz także: urldecode(), htmlentities(), rawurldecode() i rawurlencode().

Copyright © 2005-2006 Compzone.Org. Kopiowanie i wykorzystywanie materiałów zawartych na tej stronie bez zgody autora zabronione!