html_entity_decode

(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):

    Константы quote_style:
  • ENT_COMPAT Преобразуются двойные кавычки, одиночные остаются без изменений
  • ENT_QUOTES Преобразуются и двойные, и одиночные кавычки
  • ENT_NOQUOTES И двойные, и одиночные кавычки остаются без изменений

Необязательный третий аргумент charset определяет кодировку, используемую при преобразовании. По умолчанию используется кодировка ISO-8859-1.

    Начиная с PHP 4.3.0 поддерживаются следующие кодировки:
  • ISO-8859-1, ISO8859-1 Западно-европейская Latin-1 ISO-8859-15ISO8859-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.
  • BIG5950 Традиционный китайский, применяется в основном на Тайване.
  • GB2312936 Упрощенный китайский, стандартная национальная кодировка.
  • BIG5-HKSCS  Расширенная Big5, применяемая в Гонг-Конге.
  • Shift_JISSJIS, 932 Японская кодировка.
  • EUC-JPEUCJP Японская кодировка.

Пример 1. Декодирование HTML сущностей
$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('&nbsp;')); не является пустая строка Причина том, что '&nbsp;' преобразуется не в символ с ASCII-кодом 32 (который удаляется функцией trim()),а в символ с ASCII-кодом 160 (0xa0) в принимаемой по умолчанию кодировке ISO-8859-1.

Смотрите также описание функций htmlentities(), htmlspecialchars(), get_html_translation_table() и urldecode().

Все функции перекодирование
Описание на ru2.php.net
Описание на php.ru