Fonction html_entity_decode() en PHP

Exemple

Convertir les entités HTML en caractères :

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

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

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

Sortie du navigateur du code suivant :

<? W3S?h????>

Définition et utilisation

La fonction html_entity_decode() convertit les entités HTML en caractères.

La fonction html_entity_decode() est htmlentities() Inverse de la fonction.

Syntaxe

html_entity_decode(string,flags,character-set)
Paramètre Description
string Obligatoire. Spécifie la chaîne à décoder.
flags

Optionnel. Spécifie comment traiter les guillemets et quel type de document utiliser.

Types de guillemets disponibles :

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

Spécifie les flags supplémentaires utilisés pour le type de document :

  • ENT_HTML401 - Par défaut. Traité comme HTML 4.01.
  • ENT_HTML5 - Traité comme HTML 5.
  • ENT_XML1 - Traité comme XML 1.
  • ENT_XHTML - Traité comme XHTML.
character-set

Optionnel. Valeur de chaîne, spécifiant le jeu de caractères à utiliser.

Valeurs autorisées :

  • UTF-8 - Par défaut. ASCII compatible avec des octets de 8 bits Unicode
  • ISO-8859-1 - Europe de l'Ouest
  • ISO-8859-15 - Europe de l'Ouest (ajout des symboles euro + lettres françaises et finnoises manquantes dans ISO-8859-1)
  • cp866 - Jeu de caractères专用 pour DOS (Cyrillique)
  • cp1251 - Jeu de caractères专用 pour Windows (Cyrillique)
  • cp1252 - Jeu de caractères专用 pour Windows (Europe de l'Ouest)
  • KOI8-R - Russe
  • BIG5 - Chinois traditionnel, principalement utilisé à Taïwan
  • GB2312 - Chinois simplifié, jeu de caractères de norme nationale
  • BIG5-HKSCS - Big5 avec extension de Hong Kong
  • Shift_JIS - Japonais
  • EUC-JP - Japonais
  • MacRoman - Jeu de caractères utilisé par le système d'exploitation Mac

Remarque :Dans les versions de PHP 5.4 et antérieures, les jeux de caractères non reconnus sont ignorés et remplacés par ISO-8859-1. Depuis PHP 5.4, les jeux de caractères non reconnus sont ignorés et remplacés par UTF-8.

Détails techniques

Retour : Retourne la chaîne convertie
Version PHP : 4.3.0+

Journal des mises à jour :

Version Description
PHP 5 character-set La valeur par défaut du paramètre est modifiée en UTF-8.
PHP 5.4

Ajouté des flags supplémentaires pour spécifier le type de document applicable à la table de traduction :

  • ENT_HTML401
  • ENT_HTML5
  • ENT_XML1
  • ENT_XHTML
PHP 5.3.4 Ajout du support pour le codage de multiples octets.

Plus d'exemples

Exemple 1

Convertir les entités HTML en caractères :

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

Sortie HTML du code suivant (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

En utilisant le jeu de caractères de l'Europe occidentale, convertir les entités HTML en caractères :

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

Sortie HTML du code suivant (voir le code source) :

<!DOCTYPE html>
<html>
<body>
Mon nom est ?yvind ?sane. Je suis Norvégien.
</body>
</html>

Sortie du navigateur du code suivant :

Mon nom est ?yvind ?sane. Je suis Norvégien.