(PHP 4, PHP 5)
htmlentities — Convertit tous les caractères éligibles en entités HTML
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().
La chaîne d'entrée.
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.
| 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. Introduit pour des raisons de compatibilité, évitez de l'utiliser 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 séquences de code invalide dans le type de document spécifié avec un caractère de remplacement Unicode U+FFFD (UTF-8) ou &#FFFD; (sinon). |
| 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. |
Comme htmlspecialchars(), cette fonction prend un troisième argument optionnel charset qui définit le jeu de caractères utilisé durant la conversion. Actuellement, le jeu de caractères ISO-8859-1 est utilisé par défaut. Cependant, ce comportement par défaut est appelé à changer dans les futures versions de PHP ; le développeur est vivement encouragé à spécifier une valeur.
Les jeux de caractères suivants sont disponibles et supportés par PHP 4.3.0 et plus récent.
| Jeux de caractères | Alias | Description |
|---|---|---|
| ISO-8859-1 | ISO8859-1 | Europe occidentale, Latin-1 |
| 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 Cyrillic spécifique à DOS. Ce jeu de caractères est supporté depuis PHP 4.3.2. |
| cp1251 | Windows-1251, win-1251, 1251 | Jeu de caractères Cyrillic spécifique à Windows. Ce jeu de caractères est supporté depuis PHP 4.3.2. |
| cp1252 | Windows-1252, 1252 | Jeu de caractères spécifique de Windows pour l'Europe occidentale. |
| KOI8-R | koi8-ru, koi8r | Russe. Ce jeu de caractères est supporté depuis PHP 4.3.2. |
| 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, 932 | Japonais |
| EUC-JP | EUCJP | Japonais |
| '' | 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.
Lorsque double_encode est désactivé, PHP n'encodera pas les entités html existantes. Par défaut, tout est converti.
Retourne la chaîne encodée.
| Version | Description |
|---|---|
| 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 charset. |
| 4.0.3 | Ajout du paramètre flags. |
Exemple #1 Exemple avec htmlentities()
<?php
$str = 'Un \'apostrophe\' en <strong>gras</strong>';
// Affiche : Un 'apostrophe' en <strong>gras</strong>
echo htmlentities($str);
// Affiche : Un 'apostrophe' en <strong>gras</strong>
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");
?>