 | (PHP 3, PHP 4)
urlencode - URL-кодирует строку.
Описание
string urlencode (string str)
Возвращает строку, в которой все не алфавитно-числовые символы (кроме
-_.) заменены на знак процентов (%) с последующими двумя 16-ричными цифрами и
пробелами, кодированными как знаки плюс (+). Она кодируется тем же способом, что и post данные WWW-формы, то есть как в
типе носителя
application/x-www-form-urlencoded.
Это отличается от RFC1738-кодирования (см.
rawurlencode()) тем, что, по историческим соображениям, пробелы кодируются как плюсы (+). Эта функция
удобна при кодировании строки для использования в части запроса URL для
передачи переменных на следующую страницу: Пример 1. urlencode() echo '<a href="mycgi?foo=', urlencode($userinput), '">'; |
|
Примечание: будьте внимательны с переменными, которые могут совпасть
с элементами HTML.
Мнемоники вроде &, © и £ разбираются браузером и
используется реальная мнемоника, а не желаемое имся переменной. Это склока,
которая тянется с W3C годами. Вот ссылка:
http://www.w3.org/TR/html4/appendix/notes.html#h-B.2.2
PHP поддерживает изменение сепаратора аргументов на рекомендуемый W3C символ
точка с запятой вместо .ini-директивы arg_separator. К сожалению,
большинство пользовательских агентов не отправляют данные формы в формате с
разделением точкой с запятой.
Более переносимый способ - использовать & вместо
& в качестве сепаратора. Вам не надо для этого изменять
arg_separator РНР. Оставьте его как &, но просто кодируйте ваши URLs с
помощью htmlentities()(urlencode($data)). Пример 2. urlencode/htmlentities() echo '<a href="mycgi?foo=', htmlentities(urlencode($userinput)), '">'; |
|
См. также urldecode(),
htmlentities(),
rawurldecode(),
rawurlencode(). |  |