Funzione html_entity_decode() di PHP

Esempio

Converti gli entity HTML in caratteri:

<?php
$str = "<© W3Sçh°°¦§>";
echo html_entity_decode($str);
?>

L'output HTML del codice sopra è il seguente (vedere il codice sorgente):

<!DOCTYPE html>
<html>
<body>
<? W3S?h????>
</body>
</html>

Output del browser del codice sopra:

<? W3S?h????>

Definizione e uso

La funzione html_entity_decode() converte gli entity HTML in caratteri.

La funzione html_entity_decode() è htmlentities() Funzione inversa.

Sintassi

html_entity_decode(string,flags,character-set)
Parametro Descrizione
string Obbligatorio. Specifica la stringa da decodificare.
flags

Opzionale. Specifica come trattare le virgolette e quale tipo di documento utilizzare.

Tipi di virgolette disponibili:

  • ENT_COMPAT - Predefinito. Decodifica solo virgolette doppi.
  • ENT_QUOTES - Decodifica virgolette doppi e singole.
  • ENT_NOQUOTES - Non decompila nessun virgoletta.

Flag aggiuntivi per il tipo di documento utilizzato:

  • ENT_HTML401 - Predefinito. Trattato come HTML 4.01.
  • ENT_HTML5 - Trattato come HTML 5.
  • ENT_XML1 - Trattato come XML 1.
  • ENT_XHTML - Trattato come XHTML.
character-set

Opzionale. Valore stringa che specifica il set di caratteri da utilizzare.

Valori ammessi:

  • UTF-8 - Predefinito. ASCII compatibile con 8 bit Unicode multibyte
  • ISO-8859-1 - Europa occidentale
  • ISO-8859-15 - Europa occidentale (aggiunge i simboli euro + lettere francesi e finlandesi mancanti in ISO-8859-1)
  • cp866 - Set di caratteri专用 Cyrillic per DOS
  • cp1251 - Set di caratteri专用 Cyrillic per Windows
  • cp1252 - Set di caratteri专用西欧 per Windows
  • KOI8-R - Russo
  • BIG5 - Cinese tradizionale, principalmente utilizzato a Taiwan
  • GB2312 - Cinese semplificato, set di caratteri standard
  • BIG5-HKSCS - Big5 con estensioni di Hong Kong
  • Shift_JIS - Giapponese
  • EUC-JP - Giapponese
  • MacRoman - Set di caratteri utilizzato dal sistema operativo Mac

Commento:Nelle versioni precedenti al PHP 5.4, i set di caratteri non riconosciuti vengono ignorati e sostituiti con ISO-8859-1. Dalla versione PHP 5.4 in poi, i set di caratteri non riconosciuti vengono ignorati e sostituiti con UTF-8.

Dettagli tecnici

Valore di ritorno: Restituisce la stringa convertita
Versione PHP: 4.3.0+

Log delle modifiche:

Versione Descrizione
PHP 5 character-set Il valore predefinito del parametro è stato cambiato in UTF-8.
PHP 5.4

Aggiunti flag aggiuntivi per specificare il tipo di documento applicabile alla tabella di traduzione:

  • ENT_HTML401
  • ENT_HTML5
  • ENT_XML1
  • ENT_XHTML
PHP 5.3.4 Aggiunta del supporto per la codifica a più byte.

Più esempi

Esempio 1

Converti gli entity HTML in caratteri:

<?php
$str = "Bill & 'Steve'";
echo html_entity_decode($str, ENT_COMPAT); // Converti solo virgolette doppi
echo "<br>";
echo html_entity_decode($str, ENT_QUOTES); // Converti virgolette doppi e singole
echo "<br>";
echo html_entity_decode($str, ENT_NOQUOTES); // Non convertire nessuna virgoletta
?>

Output HTML del codice sopra (vedere il codice sorgente):

<!DOCTYPE html>
<html>
<body>
Bill & 'Steve'<br>
Bill & 'Steve'<br>
Bill & 'Steve'
</body>
</html>

Output del browser del codice sopra:

Bill & 'Steve'
Bill & 'Steve'
Bill & 'Steve'

Esempio 2

Converti gli entity HTML in caratteri utilizzando il set di caratteri dell'Europa occidentale:

<?php
$str = "My name is Øyvind Åsane. I'm Norwegian.";
echo html_entity_decode($str, ENT_QUOTES, "ISO-8859-1");
?>

Output HTML del codice sopra (vedere il codice sorgente):

<!DOCTYPE html>
<html>
<body>
Il mio nome è ?yvind ?sane. Sono norvegese.
</body>
</html>

Output del browser del codice sopra:

Il mio nome è ?yvind ?sane. Sono norvegese.