html_entity_decode

(PHP 4 >= 4.3.0, PHP 5)

html_entity_decode --  Koverter alle HTML-entiteter til deres anvendelige tegn

Beskrivelse

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

html_entity_decode() er det modsatte af htmlentities(), da den konverterer alle HTML-entiteter til deres anvendelige tegn fra string.

Den valgfrie anden quote_style-parameter lader dig definere hvad der skal gøres med 'enkelte' og "dobbelte" citationstegn. Den tager en af tre konstanter med ENT_COMPAT som standard:

Tabel 1. Tilgængelige quote_style konstanter

Konstant NavnBeskrivelse
ENT_COMPATVil konvertere dobbelte citationstegn og lade enkelte være.
ENT_QUOTESVil konvertere både dobbelte og enkelte citationstegn.
ENT_NOQUOTESVil lade både dobbelte og enkelte citationstegn være.

ISO-8859-1 tegnsættet er standardværdi for den valgfrie tredje charset. Denne definerer tegnsættet brugt i konverteringen.

Følgende tegnkodninger er understøttet i PHP 4.3.0 og senere.

Tabel 2. Understøttede tegnkodninger

TegnkodningAliaserBeskrivelse
ISO-8859-1ISO8859-1 Vesteuropæisk, Latin-1
ISO-8859-15ISO8859-15 Vesteuropæisk, Latin-9. Tilfølger euro-tegnet, franske og finske tegn som mangler i Latin-1 (ISO-8859-1)
UTF-8  ASCII-kompatibelt flerbit 8-bit UCS
cp866ibm866, 866 DOS-specifik kyrillisk tegnkodning. Denne tegnkodning er understøttet i 4.3.2
cp1251Windows-1251, win-1251, 1251 Windows-specifik kyrillisk tegnkodning. Denne tegnkodning er understøttet i 4.3.2.
cp1252Windows-1252, 1252 Windows-specifik tegnkodning for vesteuropæisk.
KOI8-Rkoi8-ru, koi8r Russisk. Denne tegnkodning er understøttet i 4.3.2.
BIG5950 Traditionelt kinesisk, hovedsageligt brugt i Taiwan.
GB2312936 Simplificeret kinesisk, nation standard tegnkodning.
BIG5-HKSCS  Big5 med Hong Kong-tilføjelser, traditionelt kinesisk.
Shift_JISSJIS, 932 Japansk
EUC-JPEUCJP Japansk

Bemærk: Ingen andre tegnkodninger bliver genkendt, og ISO-8859-1 vil blive brugt i stedet.

Eksempel 1. Dekode HTML-entiteter

<?php
$orig
= "Du sku' \"gå\" tur med <b>hunden</b> nu";

$a = htmlentities($orig);

$b = html_entity_decode($a);

echo
$a; // Du sku' &quot;gå&quot; tur med &lt;b&gt;hunden&lt;/b&gt; nu

echo $b; // Du sku' "gå" tur med <b>hunden</b> nu


// For versioner tidligere end PHP 4.3.0 kan du gøre dette:
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; // Du sku' "gå" tur med <b>hunden</b> nu

?>

Bemærk: You might wonder why trim(html_entity_decode('&nbsp;')); doesn't reduce the string to an empty string, that's because the '&nbsp;' entity is not ASCII code 32 (which is stripped by trim()) but ASCII code 160 (0xa0) in the default ISO 8859-1 characterset.

See also htmlentities(), htmlspecialchars(), get_html_translation_table(), and urldecode().