html_entity_decode
htmlspecialchars_decode
Fonctions sur les chaînes de caractères
PHP Manual

# htmlentities

(PHP 4, PHP 5)

htmlentities — Convertit tous les caractères éligibles en entités HTML

### Description

string htmlentities ( string `$string` [, int `$flags` = ENT_COMPAT | ENT_HTML401 [, string `$encoding` = 'UTF-8' [, bool `$double_encode` = true ]]] )

htmlentities() est identique à la fonction htmlspecialchars(), sauf que tous les caractères qui ont des équivalents en entités HTML sont effectivement traduits.

Si vous voulez réaliser l'opération inverse, vous devez utiliser la fonction html_entity_decode().

### Liste de paramètres

`string`

  La chaîne d'entrée.

`flags`

  Un masque d'un ou plusieurs drapeaux suivants, qui déterminent la façon dont les guillemets seront gérés, dont les séquences de code invalide seront gérées ainsi que le type du document 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` | Ignore les guillemets doubles et les guillemets simples.
  `ENT_IGNORE` | Ignore les séquences de caractères invalides plutôt que de retourner une chaine vide. L'utilisation de ce drapeau est fortement déconseillée pour des » raisons de sécurité.
  `ENT_SUBSTITUTE` | Remplace les séquences de code invalide avec un caractère de remplacement Unicode U+FFFD (UTF-8) ou &#FFFD; (sinon) au lieu de retourner une chaîne vide.
  `ENT_DISALLOWED` | Remplace les points du code invalides du document fourni avec un caractère de remplacement Unicode U+FFFD (UTF-8) ou &#FFFD; (sinon) au lieu de le laisser tel quel. Ceci peut être utile pour, par exemple, s'assurer du bon formatage de documents XML contenant du contenu externe.
  `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`

  Comme htmlspecialchars(), htmlentities() prend un troisième argument optionnel `encoding` qui définit l'encodage utilisé durant la conversion. Si omis, la valeur par défaut de cet argument est ISO-8859-1 pour les versions antérieures à la version 5.4.0 de PHP, et UTF-8 à partir de la version 5.4.0. Malgré le fait que cet argument soit techniquement optionnel, vous êtes vivement encouragé à spécifier une valeur correcte pour votre code.

  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.

`double_encode`

  Lorsque `double_encode` est désactivé, PHP n'encodera pas les entités html existantes. Par défaut, tout est converti.

### Valeurs de retour

Retourne la chaîne encodée.

Si l'entrée `string` contient une séquence de code invalide dans l'encodage `encoding` fourni, une chaîne vide sera retournée, à moins que le drapeau `ENT_IGNORE` ou le drapeau `ENT_SUBSTITUTE` ne soit défini.

### Historique

Version | Description
--- | ---
5.4.0 | La valeur par défaut du paramètre `encoding` est maintenant UTF-8.
5.4.0 | Les constantes `ENT_SUBSTITUTE`, `ENT_DISALLOWED`, `ENT_HTML401`, `ENT_XML1`, `ENT_XHTML` et `ENT_HTML5` ont été ajoutées.
5.3.0 | La constante `ENT_IGNORE` a été ajoutée.
5.2.3 | Ajout du paramètre `double_encode`.
4.1.0 | Ajout du paramètre `encoding`.
4.0.3 | Ajout du paramètre `flags`.

### Exemples

Exemple #1 Exemple avec htmlentities()

`<?php
$str = 'Un \'apostrophe\' en <strong>gras</strong>';
// Affiche : Un 'apostrophe' en &lt;strong&gt;gras&lt;/strong&gt;
echo htmlentities($str);
// Affiche : Un &#039;apostrophe&#039; en &lt;strong&gt;gras&lt;/strong&gt;
echo htmlentities($str, ENT_QUOTES);
?>`

Exemple #2 Utilisation de `ENT_IGNORE`

`<?php
$str = "\x8F!!!";
// Affiche une chaine vide
echo htmlentities($str, ENT_QUOTES, "UTF-8");
// Affiche "!!!"
echo htmlentities($str, ENT_QUOTES | ENT_IGNORE, "UTF-8");
?>`

### Voir aussi

- html_entity_decode() - Convertit toutes les entités HTML en caractères normaux
- get_html_translation_table() - Retourne la table de traduction des entités utilisée par htmlspecialchars et htmlentities
- htmlspecialchars() - Convertit les caractères spéciaux en entités HTML
- nl2br() - Insère un retour à la ligne HTML à chaque nouvelle ligne
- urlencode() - Encode une chaîne en URL

html_entity_decode
htmlspecialchars_decode
Fonctions sur les chaînes de caractères
PHP Manual