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 &, © i £ 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 & 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().
<?php
$query_string = 'foo=' . urlencode($foo) . '&bar=' . urlencode($bar);
echo '<a href="mycgi?' . htmlentities($query_string) . '">';
?>
Listing
Ranga: Administrator serwisu Punktów: 28716

