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&amp;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