htmlentities

(PHP 4, PHP 5, PHP 7, PHP 8)

htmlentitiesConvertit tous les caractères éligibles en entités HTML

Description

htmlentities(
    string$string,
    int$flags = ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401,
    ?string$encoding = null,
    bool$double_encode = true
): string

htmlentities() est identique à la fonction htmlspecialchars(), sauf que tous les caractères qui ont des équivalents en entités HTML sont effectivement traduits. La fonction get_html_translation_table() peut être utilisée pour retourner la table de traduction utilisée en fonction des constantes flags fournies.

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, c'est ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401.

Constantes disponibles pour flags
ConstanteDescription
ENT_COMPATConvertit les guillemets doubles, et ignore les guillemets simples.
ENT_QUOTESConvertit les guillemets doubles et les guillemets simples.
ENT_NOQUOTESIgnore 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

Un argument optionnel définissant l'encodage utilisé lors de la conversion des caractères.

Si omis, la valeur par défaut du paramètre encoding est la valeur de l'option de configuration default_charset.

Malgré le fait que cet argument soit techniquement optionnel, vous êtes vivement encouragé à spécifier la valeur correcte pour votre code si l'option de configuration default_charset a été définie de façon incorrecte pour l'entrée fournie.

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

Jeux de caractères supportés
Jeux de caractèresAliasDescription
ISO-8859-1ISO8859-1 Europe occidentale, Latin-1.
ISO-8859-5ISO8859-5 Jeu de caractère cyrillique rarement utilisé (Latin/Cyrillic).
ISO-8859-15ISO8859-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
cp866ibm866, 866 Jeu de caractères Cyrillique spécifique à DOS.
cp1251Windows-1251, win-1251, 1251 Jeu de caractères Cyrillic spécifique à Windows.
cp1252Windows-1252, 1252 Jeu de caractères spécifique de Windows pour l'Europe occidentale.
KOI8-Rkoi8-ru, koi8r Russe.
BIG5950 Chinois traditionnel, principalement utilisé à Taïwan.
GB2312936 Chinois simplifié, officiel.
BIG5-HKSCS  Big5 avec les extensions de Hong Kong, chinois traditionnel.
Shift_JISSJIS, SJIS-win, cp932, 932 Japonais
EUC-JPEUCJP, 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 (multioctet 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

VersionDescription
8.1.0flags à changé de ENT_COMPAT à ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401.
8.0.0encoding est désormais nullable.

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

To Top