Funzione html_entity_decode() di PHP

Esempio

Converti le entità HTML predefinite "<" (minore di) e ">" (maggiore di) in caratteri:

<?php
$str = "Questo è del testo in <b>grassetto</b>.";
echo htmlspecialchars_decode($str);
?>

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

<!DOCTYPE html>
<html>
<body>
Questo è del testo in <b>grassetto</b>.
</body>
</html>

L'output del browser del codice sopra è il seguente:

Questo è del testo in grassetto.

Definizione e uso

La funzione htmlspecialchars_decode() trasforma le entità HTML predefinite in caratteri.

Le entità HTML che verranno decodificate sono:

  • & Decodificato in & (e)
  • " Decodificato in " (virgoletta doppia)
  • ' Decodificato in ' (virgoletta singola)
  • < Decodificato in < (minore di)
  • > Decodificato in > (maggiore di)

La funzione htmlspecialchars_decode() è l'antitesi della funzione htmlspecialchars().

Sintassi

htmlspecialchars_decode(string,flags)
Parametro Descrizione
string Obbligatorio. Regola la stringa da decodificare.
flags

Opzionale. Regola come elaborare 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 decodifica nessuna virgoletta.

Flags aggiuntivi per il tipo di documento utilizzato:

  • ENT_HTML401 - Predefinito. Come HTML 4.01 elabora il codice.
  • ENT_HTML5 - Come HTML 5 elabora il codice.
  • ENT_XML1 - Come XML 1 elabora il codice.
  • ENT_XHTML - Come XHTML elabora il codice.

Dettagli tecnici

Valore di ritorno: Restituisce la stringa convertita.
Versione PHP: 5.1.0+
Log delle modifiche:

In PHP 5.4, sono stati aggiunti flag aggiuntivi per definire il tipo di documento utilizzato:

  • ENT_HTML401
  • ENT_HTML5
  • ENT_XML1
  • ENT_XHTML

Più esempi

Esempio 1

Converti gli enti HTML predefiniti in caratteri:

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

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

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

L'output del browser del codice sopra è il seguente:

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

Esempio 2

Converti gli enti HTML predefiniti in virgolette doppie:

<?php
$str = 'I love "PHP".';
echo htmlspecialchars_decode($str, ENT_QUOTES); // Converti virgolette doppie e singole
?>

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

<!DOCTYPE html>
<html>
<body>
Mi piace "PHP".
</body>
</html>

L'output del browser del codice sopra è il seguente:

Mi piace "PHP".