PHP htmlentities()Fonctions

PHP String 参考手册Manuel de référence des chaînes PHP

Exemples

Convertir certains caractères en entités HTML :

<?php
$str = "<© W3CSçh°°¦§>";
echo htmlentities($str);
?>

La sortie HTML du code ci-dessus est la suivante (afficher la source) :

<!DOCTYPE html>
<html>
<body>
&lt;&copy; W3CS&ccedil;h&deg;&deg;&brvbar;&sect;&gt;
</body>
</html>

La sortie du navigateur du code ci-dessus est la suivante :

<© W3CSçh°°¦§>

Exécuter l'exemple »

Définition et utilisation

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

Astuce :Pour reconvertir les entités HTML en caractères, utilisez la fonctionhtml_entity_decode().

Astuce :Veuillez utiliser la get_html_translation_table(): fonction permettant de renvoyer la table de traduction utilisée par htmlentities().


Syntaxe

htmlentities(string,flags,character-set,double_encode)

Paramètre Description
string Obligatoire. Spécifie la chaîne à convertir.
indicateurs Facultatif. Spécifie comment gérer les guillemets, l'encodage invalide et le type de document à utiliser.

Types de guillemets disponibles :

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

Encodage invalide :

  • ENT_IGNORE - Ignore l'encodage invalide au lieu que la fonction renvoie une chaîne vide. Cela doit être évité car cela peut avoir des implications de sécurité.
  • ENT_SUBSTITUTE - Remplace l'encodage invalide par un caractère spécifié contenant le caractère de remplacement Unicode U+FFFD (UTF-8) ou &#FFFD;, au lieu de renvoyer une chaîne vide.
  • ENT_DISALLOWED - Remplace les points de code invalides dans le type de document spécifié par le caractère de remplacement Unicode U+FFFD (UTF-8) ou &#FFFD;.

Indicateurs supplémentaires spécifiant le type de document à utiliser :

  • ENT_HTML401 - Par défaut. Traite le code comme du HTML 4.01.
  • ENT_HTML5 - Traite le code comme du HTML 5.
  • ENT_XML1 - Traite le code comme du XML 1.
  • ENT_XHTML - Traite le code comme du XHTML.
jeu de caractères Facultatif. Une chaîne spécifiant le jeu de caractères à utiliser.

Valeurs autorisées :

  • UTF-8 - Par défaut. Unicode 8 bits multioctet compatible ASCII
  • ISO-8859-1 - Europe occidentale
  • ISO-8859-15 - Europe occidentale (ajoute le signe euro + les lettres françaises et finnoises manquantes dans ISO-8859-1)
  • cp866 - Jeu de caractères cyrilliques spécifique à DOS
  • cp1251 - Jeu de caractères cyrilliques spécifique à Windows
  • cp1252 - Jeu de caractères d'Europe occidentale spécifique à Windows
  • 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 les systèmes d'exploitation Mac

Remarques :Dans les versions antérieures à PHP 5.4, les jeux de caractères non reconnus sont ignorés et remplacés par ISO-8859-1. À partir de PHP 5.4, les jeux de caractères non reconnus sont ignorés et remplacés par UTF-8.

double_encode Facultatif. Un booléen qui indique si les entités HTML existantes doivent être encodées.
  • TRUE - Par défaut. Convertira chaque entité.
  • FALSE - N'encodera pas les entités HTML existantes.

Détails techniques

Valeur de retour : Retourne la chaîne convertie.

Sistringcontient un encodage non valide, une chaîne vide est renvoyée, sauf si l'indicateur ENT_IGNORE ou ENT_SUBSTITUTE est défini.
Version de PHP : 4+
Journal des modifications : En PHP 5, la valeur par défaut du paramètrecharacter-seta été changée en UTF-8.

Dans PHP 5.4, ajout de : ENT_SUBSTITUTE, ENT_DISALLOWED, ENT_HTML401, ENT_HTML5, ENT_XML1 et ENT_XHTML.

En PHP 5.3, ajout de ENT_IGNORE.

Dans PHP 5.2.3, ajout du paramètredouble_encode.

Dans PHP 4.1, ajout du paramètrecharacter-set.


Plus d’exemples

Exemple 1

Convertir certains caractères en entités HTML :

<?php
$str = "Jane & 'Tarzan'";
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 est la suivante (afficher la source) :

<!DOCTYPE html>
<html>
<body>
Jane &amp; 'Tarzan'<br>
Jane &amp; &#039;Tarzan&#039;<br>
Jane &amp; 'Tarzan'
</body>
</html>

La sortie du navigateur du code ci-dessus est la suivante :

Jane & 'Tarzan'
Jane & 'Tarzan'
Jane & 'Tarzan'

Exécuter l'exemple »

Exemple 2

Convertir certains caractères en entités HTML à l'aide du jeu de caractères d'Europe occidentale :

<?php
$str = "My name is Øyvind Åsane. I'm Norwegian.";
echo htmlentities($str, ENT_QUOTES, "ISO-8859-1"); // Ne convertira que les guillemets doubles (pas les guillemets simples), et utilise le jeu de caractères d'Europe occidentale
?>

La sortie HTML du code ci-dessus est la suivante (afficher la source) :

<!DOCTYPE html>
<html>
<body>
Je m'appelle &Oslash;yvind &Aring;sane. Je suis norvégien.
</body>
</html>

La sortie du navigateur du code ci-dessus est la suivante :

Je m'appelle Øyvind Åsane. Je suis norvégien.

Exécuter l'exemple »


PHP String 参考手册Manuel de référence des chaînes PHP Autres extensions