urlencode
(PHP 4, PHP 5, PHP 7, PHP 8)
urlencode — URL-кодування рядка
Опис
urlencode(string $string): string
Ця функція зручна, коли кодований рядок буде використовуватися в запиті, як частина URL, як зручний спосіб передачі змінних на наступну сторінку.
Список параметрів
string
Рядок, який має бути закодований.
Значення, що повертаються
Повертає рядок, в якому всі не цифро-літерні символи, крім -_.
повинні бути замінені знаком відсотка (%
), за яким слідує два шістнадцяткових числа, а пробіли закодовані як знак додавання (+
). Рядок кодується тим же способом, що й POST-дані веб-форми, тобто за типом контенту application/x-www-form-urlencoded
. Це відрізняється від кодування по » RFC 3986(смотритеrawurlencode() ) в тому, що з історичних причин пробіли кодуються як знак "плюс" (+).
Приклади
Приклад #1 Приклад використання urlencode()****
Loading...
Результат виконання наведеного прикладу:
Пользовательские данные: Data123!@-_ +
<a href="mycgi?foo=Data123%21%40-_+%2B">
Приклад #2 Приклад використання urlencode()иhtmlentities()
Loading...
Результат виконання наведеного прикладу:
foo: Data123!@-_ +
bar: Содержимое, отличное от Data123!@-_ +
<a href="mycgi?foo=Data123%21%40-_+%2B&bar=Not+the+same+content+as+Data123%21%40-_+%2B">
Примітки
Зауваження :
Будьте уважні зі змінними, які можуть збігатися з елементами HTML. Такі сутності як &, © та £ розбираються браузером і використовується як реальна сутність, а не бажане ім'я змінної. Це очевидний конфлікт, який W3C вказує протягом багатьох років. Дивіться подробиці: » http://www.w3.org/TR/html4/appendix/notes.md#h-B.2.2
PHP підтримує зміну роздільника аргументів на рекомендований W3C символ "точку з комою" шляхом зміни директиви arg_separator у файлі .ini. На жаль, більшість додатків користувача не відправляють дані форми у форматі з роздільником "точка з комою". Більше переносимий спосіб вирішити цю проблему - це використовувати & замість & як роздільник. Вам не потрібно буде для цього змінювати PHP-директиву arg_separator. Залишіть розділювач як &, але кодуйте ваші URL-адреси за допомогою htmlentities() або htmlspecialchars()
Дивіться також
- urldecode() - Декодування URL-кодованого рядка
- htmlentities() - Перетворює всі можливі символи у відповідні HTML-сутності
- rawurlencode() - URL-кодування рядка згідно з RFC 3986
- rawurldecode() - Декодування URL-кодованого рядка
- » RFC 3986