Fonction html_entity_decode() en PHP

Exemple

Convertir les entités HTML prédéfinies "<" (petit que) et ">" (grand que) en caractères :

<?php
$str = "Ceci est un texte <b>en gras</b>.";
echo htmlspecialchars_decode($str);
?>

La sortie HTML du code suivant est la suivante (voir le code source) :

<!DOCTYPE html>
<html>
<body>
Ceci est un texte <b>en gras</b>.
</body>
</html>

Sortie du navigateur du code suivant :

Ceci est un texte en gras.

Définition et utilisation

La fonction htmlspecialchars_decode() convertit les entités HTML prédéfinies en caractères.

Les entités HTML qui seront décodées sont :

  • & Décodez en & (et)
  • " Décodez en " (guillemet double)
  • ' Décodez en ' (guillemet simple)
  • < Décodez en < (petit que)
  • > Décodez en > (grand que)

La fonction htmlspecialchars_decode() est l'inverse de la fonction htmlspecialchars().

Syntaxe

htmlspecialchars_decode(string,flags)
Paramètres Description
string Obligatoire. Détermine la chaîne à décoder.
flags

Optionnel. Détermine comment traiter les citations directes et quel type de document utiliser.

Types de citations disponibles :

  • ENT_COMPAT - Par défaut. Ne décodez que les citations directes doubles.
  • ENT_QUOTES - Décodez les citations directes doubles et simples.
  • ENT_NOQUOTES - Ne décodez aucune citation directe.

Flags supplémentaires pour le type de document utilisé :

  • ENT_HTML401 - Par défaut. Traiter le code en HTML 4.01.
  • ENT_HTML5 - Traiter le code en HTML 5.
  • ENT_XML1 - Traiter le code en XML 1.
  • ENT_XHTML - Traiter le code en XHTML.

Détails techniques

Retourne la valeur : Retourne la chaîne convertie.
Version PHP : 5.1.0+
Journal des mises à jour :

Dans PHP 5.4, des flags supplémentaires ont été ajoutés pour spécifier le type de document utilisé :

  • ENT_HTML401
  • ENT_HTML5
  • ENT_XML1
  • ENT_XHTML

Plus d'exemples

Exemple 1

Convertir les entités HTML prédéfinies en caractères :

<?php
$str = "Bill & 'Steve'";
echo htmlspecialchars_decode($str, ENT_COMPAT); // Ne convertir que les guillemets doubles
echo "<br>";
echo htmlspecialchars_decode($str, ENT_QUOTES); // Conversion des guillemets doubles et simples
echo "<br>";
echo htmlspecialchars_decode($str, ENT_NOQUOTES); // Ne convertir aucune guillemet
?>

La sortie HTML du code suivant est la suivante (voir le code source) :

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

Sortie du navigateur du code suivant :

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

Exemple 2

Convertir les entités HTML prédéfinies en guillemets doubles :

<?php
$str = 'I love "PHP".';
echo htmlspecialchars_decode($str, ENT_QUOTES); // Conversion des guillemets doubles et simples
?>

La sortie HTML du code suivant est la suivante (voir le code source) :

<!DOCTYPE html>
<html>
<body>
J'aime "PHP".
</body>
</html>

Sortie du navigateur du code suivant :

J'aime "PHP".