(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):
Таблица 1. Константы quote_style
| Имя константы |
Описание |
| ENT_COMPAT |
Преобразуются двойные кавычки, одиночные остаются без изменений. |
| ENT_QUOTES |
Преобразуются и двойные, и одиночные кавычки. |
| ENT_NOQUOTES |
И двойные, и одиночные кавычки остаются без изменений. |
Необязательный третий аргумент charset определяет кодировку, используемую при преобразовании. По умолчанию используется кодировка ISO-8859-1.
Начиная с PHP 4.3.0 поддерживаются следующие кодировки.
Таблица 2. Поддерживаемые кодировки
| Кодировка |
Псевдонимы |
Описание |
| 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.
Пример 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)
{
$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.
По материалам сайта: http://www.php.su/
|