Forum und email

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:

Tilgængelige quote_style konstanter
Konstant Navn Beskrivelse
ENT_COMPAT Vil konvertere dobbelte citationstegn og lade enkelte være.
ENT_QUOTES Vil konvertere både dobbelte og enkelte citationstegn.
ENT_NOQUOTES Vil 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.

Understøttede tegnkodninger
Tegnkodning Aliaser Beskrivelse
ISO-8859-1 ISO8859-1 Vesteuropæisk, Latin-1
ISO-8859-15 ISO8859-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
cp866 ibm866, 866 DOS-specifik kyrillisk tegnkodning. Denne tegnkodning er understøttet i 4.3.2
cp1251 Windows-1251, win-1251, 1251 Windows-specifik kyrillisk tegnkodning. Denne tegnkodning er understøttet i 4.3.2.
cp1252 Windows-1252, 1252 Windows-specifik tegnkodning for vesteuropæisk.
KOI8-R koi8-ru, koi8r Russisk. Denne tegnkodning er understøttet i 4.3.2.
BIG5 950 Traditionelt kinesisk, hovedsageligt brugt i Taiwan.
GB2312 936 Simplificeret kinesisk, nation standard tegnkodning.
BIG5-HKSCS   Big5 med Hong Kong-tilføjelser, traditionelt kinesisk.
Shift_JIS SJIS, 932 Japansk
EUC-JP EUCJP Japansk

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

Example#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

?>

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