(PHP 4 >= 4.3.0, PHP 5)
html_entity_decode — Преобразува всички HTML единици в съответните им знаци
html_entity_decode() е обратната функция на htmlentities() и служи за преобразуване на всички HTML единици от низа string в съответните им знаци.
Входният низ.
Незадължителният втори параметър quote_style указва как функцията да преобразува единичните и двойните кавички. Може да приеме като стойност една от трите константи, като по подразбиране е ENT_COMPAT:
Наименование на константата | Описание |
---|---|
ENT_COMPAT | Преобразува двойните кавички и оставя единичните без изменение. |
ENT_QUOTES | Преобразува и двойните и единичните кавички. |
ENT_NOQUOTES | Оставя и двойните и единичните кавички без изменение. |
Наборът от знаци 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; // Сега ще "разходя" <b>кучето</b>
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(' ')); не преобразува низа до празен низ. Причината е, че единицата ' ' няма ASCII код 32 (който се премахва от trim()), а ASCII код 160 (0xa0) в набора от знаци по подразбиране (ISO 8859-1).