hex2bin
htmlentities
Fonctions sur les chaînes de caractères
PHP Manual

# html_entity_decode

(PHP 4 >= 4.3.0, PHP 5)

html_entity_decode — Convertit toutes les entités HTML en caractères normaux

### Description

string html_entity_decode ( string `$string` [, int `$flags` = ENT_COMPAT | ENT_HTML401 [, string `$encoding` = 'UTF-8' ]] )

html_entity_decode() est la fonction contraire de htmlentities() : elle convertit les entités HTML de la chaîne `string` en caractères applicables.

De façon plus explicite, cette fonction décode toutes les entités (incluant les entités numériques) qui 1) sont nécessairement valides pour le type de document choisi - i.e., pour XML, cette fonction ne décode pas les entités nommées qui peuvent être définies dans une DTD - et 2) et dont le caractère ou les caractères sont dans le jeu de caractères codé avec l'encodage choisi et sont autorisés dans le type de document choisi. Toutes les autres entités sont laissées telle que.

### Liste de paramètres

`string`

  La chaîne d'entrée.

`flags`

  Un masque d'un ou plusieurs drapeaux suivants, qui spécifient la façon dont doivent être gérés les guillemets et quel type de document doit être utilisé. Par défaut, ce sera ENT_COMPAT | ENT_HTML401.

  Constantes disponibles pour `flags`
  Constante | Description
  --- | ---
  `ENT_COMPAT` | Convertit les guillemets doubles et ignore les guillemets simples.
  `ENT_QUOTES` | Convertit les guillemets doubles et les guillemets simples.
  `ENT_NOQUOTES` | Ne convertit aucun guillemet.
  `ENT_HTML401` | Gère le code comme étant du HTML 4.01.
  `ENT_XML1` | Gère le code comme étant du XML 1.
  `ENT_XHTML` | Gère le code comme étant du XHTML.
  `ENT_HTML5` | Gère le code comme étant du HTML 5.

`encoding`

  Encodage à utiliser. Si omis, la valeur par défaut de cet argument sera ISO-8859-1 dans les version antérieures à la version 5.4.0 de PHP, et UTF-8 pour les versions à partir de 5.4.0 de PHP.

  Les jeux de caractères suivants sont supportés :

  Jeux de caractères supportés
  Jeux de caractères | Alias | Description
  --- | --- | ---
  ISO-8859-1 | ISO8859-1 | Europe occidentale, Latin-1.
  ISO-8859-5 | ISO8859-5 | Jeu de caractère cyrillique rarement utilisé (Latin/Cyrillic).
  ISO-8859-15 | ISO8859-15 | Europe occidentale, Latin-9. Dispose du signe Euro, des caractères spéciaux français et finlandais, qui manquent au Latin-1 (ISO-8859-1).
  UTF-8 |  | Unicode 8 bits multioctets, compatible avec l'ASCII
  cp866 | ibm866, 866 | Jeu de caractères Cyrillique spécifique à DOS.
  cp1251 | Windows-1251, win-1251, 1251 | Jeu de caractères Cyrillic spécifique à Windows.
  cp1252 | Windows-1252, 1252 | Jeu de caractères spécifique de Windows pour l'Europe occidentale.
  KOI8-R | koi8-ru, koi8r | Russe.
  BIG5 | 950 | Chinois traditionnel, principalement utilisé à Taïwan.
  GB2312 | 936 | Chinois simplifié, officiel.
  BIG5-HKSCS |  | Big5 avec les extensions de Hong Kong, chinois traditionnel.
  Shift_JIS | SJIS, SJIS-win, cp932, 932 | Japonais
  EUC-JP | EUCJP, eucJP-win | Japonais
  MacRoman |  | Jeu de caractères utilisé par Mac OS.
  '' |  | Une chaîne vide active la détection de l'encodage depuis un script (multi-octet Zend), default_charset et la locale courante (voir nl_langinfo() et setlocale()), dans cet ordre. Non recommandé.

  > Note: Les autres jeux de caractères ne sont pas reconnus. L'encodage par défaut sera utilisé à la place et une alerte sera émise.

### Valeurs de retour

Retourne la chaîne décodée.

### Historique

Version | Description
--- | ---
5.4.0 | L'encodage par défaut a changé de ISO-8859-1 à UTF-8.
5.4.0 | Les constantes `ENT_HTML401`, `ENT_XML1`, `ENT_XHTML` et `ENT_HTML5` ont été ajoutées.
5.0.0 | Le support des encodages multi-octets a été ajouté.

### Exemples

Exemple #1 Décoder des entités HTML

`<?php
$orig = 'J\'ai "sorti" le <strong>chien</strong> tout à l\'heure';
$a = htmlentities($orig);
$b = html_entity_decode($a);
echo $a; // J'ai &quot;sorti&quot; le &lt;strong&gt;chien&lt;/strong&gt; tout &amp;agrave; l'heure
echo $b; // J'ai "sorti" le <strong>chien</strong> tout à l'heure
?>`

### Notes

> Note:

> Vous pourriez vous demander pourquoi trim(html_entity_decode('&nbsp;')); ne réduit pas la chaîne à la chaîne vide. C'est parce que l'entité &nbsp; n'est pas un code ASCII 32 (qui serait supprimé par trim()), mais un code ASCII 160 (0xa0) dans l'encodage par défaut ISO 8859-1.

### Voir aussi

- htmlentities() - Convertit tous les caractères éligibles en entités HTML
- htmlspecialchars() - Convertit les caractères spéciaux en entités HTML
- get_html_translation_table() - Retourne la table de traduction des entités utilisée par htmlspecialchars et htmlentities
- urldecode() - Décode une chaîne encodée URL

hex2bin
htmlentities
Fonctions sur les chaînes de caractères
PHP Manual