Функции за низове
PHP Manual

html_entity_decode

(PHP 4 >= 4.3.0, PHP 5)

html_entity_decodeПреобразува всички HTML единици в съответните им знаци

Описание

string html_entity_decode ( string $string [, int $quote_style= ENT_COMPAT [, string $charset ]] )

html_entity_decode() е обратната функция на htmlentities() и служи за преобразуване на всички HTML единици от низа string в съответните им знаци.

Параметри

string

Входният низ.

quote_style

Незадължителният втори параметър quote_style указва как функцията да преобразува единичните и двойните кавички. Може да приеме като стойност една от трите константи, като по подразбиране е ENT_COMPAT:

Допустими quote_style константи
Наименование на константата Описание
ENT_COMPAT Преобразува двойните кавички и оставя единичните без изменение.
ENT_QUOTES Преобразува и двойните и единичните кавички.
ENT_NOQUOTES Оставя и двойните и единичните кавички без изменение.

charset

Наборът от знаци ISO-8859-1 се използва по подразбиране за незадължителния трети параметър charset . Той дефинира набора от знаци, използван при преобразуването.

От 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   ASCII съвместим многобитов 8-bit Unicode.
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.

Връщани стойности

Връща декодирания низ.

Дневник на промените

Версия Описание
5.0.0 Добавена е поддръжката на многобайтови набори от знаци.

Примери

Example #1 Декодиране на HTML единици

<?php
$orig 
"Сега ще \"разходя\" <b>кучето</b>";

$a htmlentities($orig);

$b html_entity_decode($a);

echo 
$a// Сега ще &quot;разходя&quot; &lt;b&gt;кучето&lt;/b&gt;

echo $b// Сега ще "разходя" <b>кучето</b>


// За версии по-ранни от 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// Сега ще "разходя" <b>кучето</b>

?>

Бележки

Забележка: Може би се питате защо trim(html_entity_decode('&nbsp;')); не преобразува низа до празен низ. Причината е, че единицата '&nbsp;' няма ASCII код 32 (който се премахва от trim()), а ASCII код 160 (0xa0) в набора от знаци по подразбиране (ISO 8859-1).

Вж. също


Функции за низове
PHP Manual