Функция PHP htmlspecialchars()
Пример
Преобразуйте предопределенные символы «<» (меньше) и «>» (больше) в объекты HTML:
<?php
$str = "This is some <b>bold</b> text.";
echo htmlspecialchars($str);
?>
HTML-вывод приведенного выше кода будет (Просмотреть исходный код):
<!DOCTYPE html>
<html>
<body>
This is some <b>bold</b> text.
</body>
</html>
Вывод кода выше в браузере будет таким:
This is some <b>bold</b> text.
Определение и использование
Функция htmlspecialchars() преобразует некоторые предопределенные символы в объекты HTML.
Предопределенные символы:
- & (амперсанд) становится &
- " (двойная кавычка) становится "
- ' (одинарная кавычка) становится '
- < (меньше чем) становится <
- > (больше) становится >
Совет. Чтобы преобразовать специальные объекты HTML обратно в символы, используйте функцию htmlspecialchars_decode() .
Синтаксис
htmlspecialchars(string,flags,character-set,double_encode)
Значения параметров
Parameter | Description |
---|---|
string | Required. Specifies the string to convert |
flags | Optional. Specifies how to handle quotes, invalid encoding and the used document type. The available quote styles are:
Invalid encoding:
Additional flags for specifying the used doctype:
|
character-set | Optional. A string that specifies which character-set to use. Allowed values are:
Note: Unrecognized character-sets will be ignored and replaced by ISO-8859-1 in versions prior to PHP 5.4. As of PHP 5.4, it will be ignored an replaced by UTF-8. |
double_encode | Optional. A boolean value that specifies whether to encode existing html entities or not.
|
Технические детали
Возвращаемое значение: | Возвращает преобразованную строку . Если строка содержит недопустимую кодировку, будет возвращена пустая строка, если только не установлены флаги ENT_IGNORE или ENT_SUBSTITUTE. |
---|---|
Версия PHP: | 4+ |
Список изменений: | PHP 5.6 - Изменено значение по умолчанию для параметра набора
символов на значение набора символов по умолчанию (в конфигурации). PHP 5.4 - Изменено значение по умолчанию для параметра набора символов на UTF-8. PHP 5.4 — добавлены ENT_SUBSTITUTE, ENT_DISALLOWED, ENT_HTML401, ENT_HTML5, ENT_XML1 и ENT_XHTML PHP 5.3 — добавлена константа ENT_IGNORE. PHP 5.2.3 — добавлен параметр double_encode . PHP 4.1 — добавлен параметр набора символов . |
Дополнительные примеры
Пример
Преобразуйте некоторые предопределенные символы в объекты HTML:
<?php
$str = "Jane & 'Tarzan'";
echo htmlspecialchars($str, ENT_COMPAT); // Will only convert double quotes
echo "<br>";
echo htmlspecialchars($str, ENT_QUOTES); // Converts double and single quotes
echo "<br>";
echo htmlspecialchars($str, ENT_NOQUOTES); // Does not convert any quotes
?>
HTML-вывод приведенного выше кода будет (Просмотреть исходный код):
<!DOCTYPE html>
<html>
<body>
Jane & 'Tarzan'<br>
Jane & 'Tarzan'<br>
Jane & 'Tarzan'
</body>
</html>
Вывод кода выше в браузере будет таким:
Jane & 'Tarzan'
Jane & 'Tarzan'
Jane & 'Tarzan'
Пример
Преобразование двойных кавычек в объекты HTML:
<?php
$str = 'I love "PHP".';
echo htmlspecialchars($str, ENT_QUOTES); // Converts double and single quotes
?>
HTML-вывод приведенного выше кода будет (Просмотреть исходный код):
<!DOCTYPE html>
<html>
<body>
I love "PHP".
</body>
</html>
Вывод кода выше в браузере будет таким:
I love "PHP".
❮ Справочник по строкам PHP