(PHP 4 >= 4.3.0, PHP 5)
html_entity_decode — Преобразует HTML сущности в соответствующие символы
Описание
string html_entity_decode ( string $string [, int
$quote_style [, string $charset]] )
html_entity_decode(), в противоположность функции htmlentities(), Преобразует HTML сущности в строке string в соответствующие символы.
Необязательный аргумент quote_style позволяет указать способ обработки 'одиночных' и "двойных" кавычек. Значением этого аргумента может быть одна из трех следующих констант (по умолчанию ENT_COMPAT):
Таблица 288. Константы quote_style
Имя константы | Описание |
---|---|
ENT_COMPAT | Преобразуются двойные кавычки, одиночные остаются без изменений. |
ENT_QUOTES | Преобразуются и двойные, и одиночные кавычки. |
ENT_NOQUOTES | И двойные, и одиночные кавычки остаются без изменений. |
Необязательный третий аргумент charset определяет кодировку, используемую при преобразовании. По умолчанию используется кодировка ISO-8859-1.
Начиная с PHP 4.3.0 поддерживаются следующие кодировки.
Таблица 289. Поддерживаемые кодировки
Кодировка | Псевдонимы | Описание |
---|---|---|
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 | Японская кодировка. |
Замечание: Не перечисленные выше кодировки не поддерживаются, и вместо них применяется ISO-8859-1.
<?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)
{
$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(), htmlspecialchars(), get_html_translation_table() и urldecode().