html_entity_decode - Преобразует все HTML-сущности в соответствующие символы
Вернуться к: Обработка строк
html_entity_decode
(PHP 4 >= 4.3.0, PHP 5)
html_entity_decode — Преобразует все HTML-сущности в соответствующие символы
Описание
html_entity_decode() является противоположностью функции htmlentities(), она преобразует все HTML-сущности в строке string в соответствующие символы.
Список параметров
- string
-
Входная строка.
- quote_style
-
Необязательный аргумент quote_style позволяет указать способ обработки 'одиночных' и "двойных" кавычек. Значением этого аргумента может быть одна из трех следующих констант:
Константы quote_style Имя константы Описание ENT_COMPAT Преобразуются двойные кавычки, одиночные остаются без изменений. ENT_QUOTES Преобразуются и двойные, и одиночные кавычки. ENT_NOQUOTES И двойные, и одиночные кавычки остаются без изменений. - charset
-
Определяет кодировку, используемую при преобразовании. Передача пустой строки включит автоматическое определение кодировки, основанное на значениях внутренней кодировки mbstring и текущей локали.
Начиная с PHP 4.3.0 поддерживаются следующие кодировки.
Поддерживаемые кодировки Кодировка Псевдонимы Описание ISO-8859-1 ISO8859-1 Западно-европейская Latin-1 ISO-8859-15 ISO8859-15 Западно-европейская Latin-9. Добавляет знак евро, французские и финские буквы к кодировке Latin-1(ISO-8859-1). UTF-8 8-битная Unicode, совместимая с ASCII. cp866 ibm866, 866 Кириллическая кодировка, применяемая в DOS. Поддерживается в версии 4.3.2. cp1251 Windows-1251, win-1251, 1251 Кириллическая кодировка, применяемая в Windows. Поддерживается в версии 4.3.2. cp1252 Windows-1252, 1252 Западно-европейская кодировка, применяемая в Windows. KOI8-R koi8-ru, koi8r Русская кодировка. Поддерживается в версии 4.3.2. BIG5 950 Традиционный китайский, применяется в основном на Тайване. GB2312 936 Упрощенный китайский, стандартная национальная кодировка. BIG5-HKSCS Расширенная Big5, применяемая в Гонг-Конге. Shift_JIS SJIS, 932 Японская кодировка. EUC-JP EUCJP Японская кодировка. '' Пустая строка активирует режим определения кодировки из файла скрипта (Zend multibyte), default_charset и текущей локали (см. nl_langinfo() и setlocale()), в указанном порядке. Не рекомендуется к использованию. Замечание: Остальные кодировки не поддерживаются, вместо них будет применена кодировка по умолчанию и сгенерировано предупреждение.
Возвращаемые значения
Возвращает раскодированную строку.
Список изменений
| Версия | Описание |
|---|---|
| 5.4.0 | Кодировка по умолчанию сменилась с ISO-8859-1 на UTF-8. |
| 5.0.0 | Добавлена поддержка многобайтных символов. |
Примеры
Пример #1 Декодирование HTML-сущностей
<?php
$orig = "I'll \"walk\" the <b>dog</b> now";
$a = htmlentities($orig);
$b = html_entity_decode($a);
echo $a; // I'll "walk" the <b>dog</b> now
echo $b; // I'll "walk" the <b>dog</b> now
// в версиях до PHP 4.3.0 можно сделать так:
function unhtmlentities($string)
{
// заменяет числовые сущности
$string = preg_replace('~&#x([0-9a-f]+);~ei', 'chr(hexdec("\\1"))', $string);
$string = preg_replace('~&#([0-9]+);~e', 'chr("\\1")', $string);
// заменяем буквенные сущности
$trans_tbl = get_html_translation_table(HTML_ENTITIES);
$trans_tbl = array_flip($trans_tbl);
return strtr($string, $trans_tbl);
}
$c = unhtmlentities($a);
echo $c; // I'll "walk" the <b>dog</b> now
?>
Примечания
Замечание:
Может показаться странным, что результатом вызова trim(html_entity_decode(' ')); не является пустая строка. Причина том, что ' ' преобразуется не в символ с ASCII-кодом 32 (который удаляется функцией trim()),а в символ с ASCII-кодом 160 (0xa0) в принимаемой по умолчанию кодировке ISO-8859-1.
Смотрите также
- htmlentities() - Преобразует все возможные символы в соответствующие HTML-сущности
- htmlspecialchars() - Преобразует специальные символы в HTML-сущности
- get_html_translation_table() - Возвращает таблицу преобразований, используемую функциями htmlspecialchars и htmlentities
- urldecode() - Декодирование URL-кодированной строки
Вернуться к: Обработка строк