Descrizione
string
html_entity_decode ( string string [, int quote_style [, string charset]] )
La funzione html_entity_decode() è l'opposto di
htmlentities() converte tutte le entità HTML presenti
nel parametro string nel corrispondente carattere.
Il secondo parametro,
quote_style, opzionale, indica cosa occorre fare per gli apici
'singoli' e "doppi". Sono possibili tre scelte indicate da tre
costanti con default ENT_COMPAT:
Tabella 1. Costanti disponibili per quote_style
Nome della costante | Descrizione |
---|
ENT_COMPAT | Converte gli apici doppi e lascia inalterati gli apici singoli. |
ENT_QUOTES | Converte sia gli apici doppi sia gli apici singoli. |
ENT_NOQUOTES | Lascia entrambi i tipi di apici inalterati. |
Per il terzo parametro opzionale, charset, si utilizza
come default il set di caratteri ISO-8859-1. Questo parametro indica quale
set di caratteri utilizzare per la conversione.
Elenco dei set di caratteri supportati dal PHP 4.3.0 e successivi.
Tabella 2. set di caratteri supportati
Set di caratteri | Alias | Descrizione |
---|
ISO-8859-1 | ISO8859-1 |
Western European, Latin-1
|
ISO-8859-15 | ISO8859-15 |
Western European, Latin-9. Con in più il simbolo dell'Euro e i caratteri francesi
e finnici mancanti in Latin-1(ISO-8859-1).
|
UTF-8 | |
Set ASCII compatibile con il set multi-byte Unicode su 8-bit.
|
cp866 | ibm866, 866 |
Set di caratteri cirillico specifico del Dos.
Supportato dalla 4.3.2.
|
cp1251 | Windows-1251, win-1251, 1251 |
Set di caratteri cirillico specifico di Windows,
Supportato dalla 4.3.2.
|
cp1252 | Windows-1252, 1252 |
Set di caratteri specifico di Windows per l'Europa occidentale.
|
KOI8-R | koi8-ru, koi8r |
Russo. Supportato dalla 4.3.2.
|
BIG5 | 950 |
Cinese tradizionale, usato principalmente a Taiwan.
|
GB2312 | 936 |
Cinese semplificato, set di caratteri nazionale standard.
|
BIG5-HKSCS | |
Big5 con estensioni per Hong Kong, cinese tradizionale.
|
Shift_JIS | SJIS, 932 |
Giapponese.
|
EUC-JP | EUCJP |
Giapponese.
|
Nota:
Ogni altro set di caratteri non è riconosciuto e sarà sostituito con
con il set ISO-8859-1.
Esempio 1. Decodifica delle entità HTML
<?php $orig = "I'll \"walk\" the <b>dog</b> now";
$a = htmlentities($orig);
$b = html_entity_decode($a);
echo $a; // I'll "walk" the <b>dog</b> now
echo $b; // I'll "walk" the <b>dog</b> now
// Per utilizzatori di versioni di PHP antecedenti alla 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
?>
|
|
Nota:
Ci si può chiedere come mai la sequenza trim(html_entity_decode(' ')); non
produca una stringa vuota; questo accade perchè l'intità ' '
non corrisponde al codice ASCII 32 (che verrebbe rimosso
da trim()), ma, nella codifica di default ISO-8859-1, corrisponde
al carattere ASCII 160 (0xa0).
Vedere anche htmlentities(),
htmlspecialchars(),
get_html_translation_table(),
and urldecode().