Функция PHP html_entity_decode

string html_entity_decode ( string string [, int quote_style [, string charset]] )

html_entity_decode, в противоположность функции htmlentities, Преобразует HTML сущности в строке string в соответствующие символы.

Необязательный аргумент quote_style позволяет указать способ обработки 'одиночных' и "двойных" кавычек. Значением этого аргумента может быть одна из трех следующих констант (по умолчанию ENT_COMPAT):

Константы quote_style:

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

Начиная с PHP 4.3.0 поддерживаются следующие кодировки.

Поддерживаемые кодировки:

Замечание: Не перечисленные выше кодировки не поддерживаются, и вместо них применяется ISO-8859-1.

Декодирование HTML сущностей:

<?php
   $orig = "I'll "walk" the <b>dog</b> now";
   $a = htmlentities($orig);
   $b = html_entity_decode($a);
   echo $a; // I'll &quot;walk&quot; the &lt;b&gt;dog&lt;/b&gt; 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.