PHP htmlentities() Fonction

❮ Référence de chaîne PHP

Exemple

Convertir certains caractères en entités HTML :

<?php
$str = '<a href="https://www.formation-ti.org">Aller à formation-ti.org</a>';
echo htmlentities($str);
?>

La sortie HTML du code ci-dessus sera (Voir Source) :

&lt;a href=&quot;https://www.formation-ti.org&quot;&gt;Aller à formation-ti.org&lt;/a&gt;

La sortie du navigateur du code ci-dessus sera :

<a href="https://www.formation-ti.org">Aller à formation-ti.org</a>
Essayez-le vous-même »

Définition et Utilisation

La fonction htmlentities() convertit des caractères en entités HTML.

Astuce : Pour convertir des entités HTML en caractères, utilisez la fonction html_entity_decode() .

Astuce : Utilisez la fonction get_html_translation_table() pour retourner la table de traduction utilisée par htmlentities().


Syntaxe

htmlentities( chaîne, flags, encodage, double_encode )

Valeurs des Paramètres

Paramètre Description
chaîne Requis. Spécifie la chaîne à convertir.
flags Optionnel. Spécifie comment gérer les guillemets, l'encodage invalide et le type de document utilisé.

Les styles de guillemets disponibles sont :

  • ENT_COMPAT - Encode uniquement les guillemets doubles
  • ENT_QUOTES - Par défaut. Encode les guillemets doubles et simples
  • ENT_NOQUOTES - N'encode aucun guillemet

Encodage invalide :

  • ENT_IGNORE - Ignore l'encodage invalide au lieu de faire retourner une chaîne vide par la fonction. À éviter, car cela peut avoir des implications de sécurité.
  • ENT_SUBSTITUTE - Remplace l'encodage invalide pour un jeu de caractères spécifié par un caractère de remplacement Unicode U+FFFD (UTF-8) ou &#FFFD; au lieu de retourner une chaîne vide.
  • ENT_DISALLOWED - Remplace les points de code qui sont invalides dans le doctype spécifié par un caractère de remplacement Unicode U+FFFD (UTF-8) ou &#FFFD;

Drapeaux supplémentaires pour spécifier le doctype utilisé :

  • ENT_HTML401 - Par défaut. Traite le code comme HTML 4.01
  • ENT_HTML5 - Traite le code comme HTML 5
  • ENT_XML1 - Traite le code comme XML 1
  • ENT_XHTML - Traite le code comme XHTML
encodage Optionnel. Une chaîne qui spécifie quel jeu de caractères utiliser.

Les valeurs autorisées sont :

  • UTF-8 - Par défaut. Unicode multi-octets 8 bits compatible ASCII
  • ISO-8859-1 - Européen occidental
  • ISO-8859-15 - Européen occidental (ajoute le signe Euro + lettres françaises et finlandaises manquantes dans ISO-8859-1)
  • cp866 - Jeu de caractères cyrillique spécifique à DOS
  • cp1251 - Jeu de caractères cyrillique spécifique à Windows
  • cp1252 - Jeu de caractères spécifique à Windows pour l'Europe occidentale
  • KOI8-R - Russe
  • BIG5 - Chinois traditionnel, principalement utilisé à Taïwan
  • GB2312 - Chinois simplifié, jeu de caractères standard national
  • BIG5-HKSCS - Big5 avec extensions de Hong Kong
  • Shift_JIS - Japonais
  • EUC-JP - Japonais
  • MacRoman - Jeu de caractères utilisé par Mac OS
double_encode Optionnel. Une valeur booléenne qui spécifie s'il faut encoder les entités HTML existantes ou non.
  • TRUE - Par défaut. Convertira tout
  • FALSE - N'encoder pas les entités HTML existantes


Détails Techniques

Valeur de Retour : Retourne la chaîne encodée. Cependant, si le paramètre chaîne contient un encodage invalide, il retournera une chaîne vide, à moins que les drapeaux ENT_IGNORE ou ENT_SUBSTITUTE ne soient définis.
Version PHP : 4+
Journal des Modifications : PHP 8.0 - encodage est maintenant nullable

Plus d'Exemples

Exemple

Convertir certains caractères en entités HTML :

<?php
$str = "Albert Einstein a dit : 'E=MC²'";
echo htmlentities($str, ENT_COMPAT); // Ne convertira que les guillemets doubles
echo "<br>";
echo htmlentities($str, ENT_QUOTES); // Convertit les guillemets doubles et simples
echo "<br>";
echo htmlentities($str, ENT_NOQUOTES); // Ne convertit aucun guillemet
?>

La sortie HTML du code ci-dessus sera (Voir Source) :

Albert Einstein a dit : 'E=MC&sup2;'<br>
Albert Einstein a dit : &#039;E=MC&sup2;&#039;<br>
Albert Einstein a dit : 'E=MC&sup2;'

La sortie du navigateur du code ci-dessus sera :

Albert Einstein a dit : 'E=MC²'
Albert Einstein a dit : 'E=MC²'
Albert Einstein a dit : 'E=MC²'
Essayez-le vous-même »

Exemple

Convertir certains caractères en entités HTML en utilisant le jeu de caractères européen occidental :

<?php
$str = "Mon nom est Øyvind Åsane. Je suis norvégien.";
echo htmlentities($str, ENT_QUOTES, "UTF-8"); // Ne convertira que les guillemets doubles (pas les guillemets simples), et utilise le jeu de caractères européen occidental
?>

La sortie HTML du code ci-dessus sera (Voir Source) :

<!DOCTYPE html>
<html>
<body>
Mon nom est &Oslash;yvind &Aring;sane. Je&#039; suis norvégien.
</body>
</html>

La sortie du navigateur du code ci-dessus sera :

Mon nom est Øyvind Åsane. Je suis norvégien.
Essayez-le vous-même »

❮ Référence de chaîne PHP