Функции PHP htmlentities()Functions

PHP String 参考手册Справочное руководство по строкам PHP

Примеры

Преобразовать некоторые символы в HTML-сущности:

<?php
$str = "<© W3CSçh°°¦§>";
echo htmlentities($str);
?>

HTML-вывод приведённого выше кода выглядит следующим образом (просмотр исходного кода):

<!DOCTYPE html>
<html>
<body>
&lt;&copy; W3CS&ccedil;h&deg;&deg;&brvbar;&sect;&gt;
</body>
</html>

Вывод браузера для приведённого выше кода выглядит так:

<© W3CSçh°°¦§>

Запустить пример »

Определение и использование

Функция htmlentities() преобразует символы в HTML-сущности.

Совет:Чтобы преобразовать HTML-сущности обратно в символы, используйте функциюhtml_entity_decode().

Совет:Пожалуйста, используйте get_html_translation_table()— функция, возвращающая таблицу перевода, используемую htmlentities().


Синтаксис

htmlentities(string,flags,character-set,double_encode)

Параметр Описание
string Обязательный. Указывает строку для преобразования.
флаги Необязательно. Указывает, как обрабатывать кавычки, недопустимую кодировку и какой тип документа использовать.

Доступные типы кавычек:

  • ENT_COMPAT - По умолчанию. Кодирует только двойные кавычки.
  • ENT_QUOTES - Кодирует двойные и одинарные кавычки.
  • ENT_NOQUOTES - Не кодирует кавычки.

Недопустимая кодировка:

  • ENT_IGNORE - Игнорирует недопустимую кодировку вместо того, чтобы функция возвращала пустую строку. Этого следует избегать, так как это может иметь последствия для безопасности.
  • ENT_SUBSTITUTE - Заменяет недопустимую кодировку указанным символом, содержащим замещающий символ Unicode U+FFFD (UTF-8) или &#FFFD;, вместо возврата пустой строки.
  • ENT_DISALLOWED - Заменяет недопустимые кодовые точки в указанном типе документа замещающим символом Unicode U+FFFD (UTF-8) или &#FFFD;.

Дополнительные флаги, указывающие используемый тип документа:

  • ENT_HTML401 - По умолчанию. Обрабатывать код как HTML 4.01.
  • ENT_HTML5 - Обрабатывать код как HTML 5.
  • ENT_XML1 - Обрабатывать код как XML 1.
  • ENT_XHTML - Обрабатывать код как XHTML.
character-set Необязательный. Строка, указывающая используемую кодировку.

Допустимые значения:

  • UTF-8 - По умолчанию. Совместимая с ASCII многобайтовая 8-битная кодировка Unicode
  • ISO-8859-1 - Западноевропейская
  • ISO-8859-15 - Западноевропейская (добавляет знак евро + французские и финские буквы, отсутствующие в ISO-8859-1)
  • cp866 - Кириллическая кодировка для DOS
  • cp1251 - Кириллическая кодировка для Windows
  • cp1252 - Западноевропейская кодировка для Windows
  • KOI8-R - Русская
  • BIG5 - Традиционный китайский, в основном используется на Тайване
  • GB2312 - упрощённый китайский, национальный стандартный набор символов
  • BIG5-HKSCS - Big5 с гонконгскими расширениями
  • Shift_JIS - японский
  • EUC-JP - японский
  • MacRoman - Кодировка, используемая операционными системами Mac

Примечания:В версиях до PHP 5.4 нераспознанные кодировки игнорируются и заменяются на ISO-8859-1. Начиная с PHP 5.4, нераспознанные кодировки игнорируются и заменяются на UTF-8.

double_encode Необязательно. Логическое значение, указывающее, следует ли кодировать существующие HTML-сущности.
  • TRUE - По умолчанию. Преобразует каждую сущность.
  • FALSE - Не будет кодировать существующие HTML-сущности.

Технические детали

Возвращаемое значение: Возвращает преобразованную строку.

Еслиstringсодержит недопустимую кодировку, возвращается пустая строка, если не установлен флаг ENT_IGNORE или ENT_SUBSTITUTE.
Версия PHP: 4+
Список изменений: В PHP 5 значение параметраcharacter-setпо умолчанию было изменено на 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 добавлен параметрcharacter-set.


Другие примеры

Пример 1

Преобразовать некоторые символы в HTML-сущности:

<?php
$str = "Jane & 'Tarzan'";
echo htmlentities($str, ENT_COMPAT); // Преобразует только двойные кавычки
echo "<br>";
echo htmlentities($str, ENT_QUOTES); // Преобразует двойные и одинарные кавычки
echo "<br>";
echo htmlentities($str, ENT_NOQUOTES); // Не преобразует кавычки
?>

HTML-вывод приведённого выше кода выглядит следующим образом (просмотр исходного кода):

<!DOCTYPE html>
<html>
<body>
Jane &amp; 'Tarzan'<br>
Jane &amp; &#039;Tarzan&#039;<br>
Jane &amp; 'Tarzan'
</body>
</html>

Вывод браузера для приведённого выше кода выглядит так:

Jane & 'Tarzan'
Jane & 'Tarzan'
Jane & 'Tarzan'

Запустить пример »

Пример 2

Преобразуйте некоторые символы в HTML-сущности, используя западноевропейский набор символов:

<?php
$str = "My name is Øyvind Åsane. I'm Norwegian.";
echo htmlentities($str, ENT_QUOTES, "ISO-8859-1"); // Будет преобразовывать только двойные кавычки (не одинарные), и использует кодировку западноевропейскую
?>

HTML-вывод приведённого выше кода выглядит следующим образом (просмотр исходного кода):

<!DOCTYPE html>
<html>
<body>
Меня зовут &Oslash;yvind &Aring;sane. Я норвежец.
</body>
</html>

Вывод браузера для приведённого выше кода выглядит так:

Меня зовут Øyvind Åsane. Я норвежец.

Запустить пример »


PHP String 参考手册Справочное руководство по строкам PHP Другие расширения