urlencode - URL-кодирование строки
Вернуться к: URL
urlencode
(PHP 4, PHP 5, PHP 7)
urlencode — URL-кодирование строки
Описание
$str
)Эта функция удобна, когда закодированная строка будет использоваться в запросе, как часть URL, также это удобный способ для передачи переменных другим страницам.
Список параметров
-
str
-
Строка, которая должны быть закодирована.
Возвращаемые значения
Возвращает строку, в которой все не цифробуквенные символы, кроме -_. должны быть заменены знаком процента (%), за которым следует два шестнадцатеричных числа, а пробелы кодируются как знак сложения (+). Строка кодируется тем же способом, что и POST данные WWW-формы, то есть по типу контента application/x-www-form-urlencoded. Это отличается от » RFC 3986 кодирования (см. rawurlencode() ) тем, что, по историческим соображениям, пробелы кодируются как знак "плюс" (+).
Примеры
Пример #1 Пример использования urlencode()
<?php
echo '<a href="mycgi?foo=', urlencode($userinput), '">';
?>
Пример #2 Пример использования urlencode() и htmlentities()
<?php
$query_string = 'foo=' . urlencode($foo) . '&bar=' . urlencode($bar);
echo '<a href="mycgi?' . htmlentities($query_string) . '">';
?>
Примечания
Замечание:
Будьте внимательны с переменными, которые могут совпадать с элементами HTML. Такие сущности как &, © и £ разбираются браузером и используется как реальная сущность, а не желаемое имя переменной. Это очевидный конфликт, на который W3C указывает в течение многих лет. См. подробности: » http://www.w3.org/TR/html4/appendix/notes.html#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
Вернуться к: URL