Fonction PHP htmlentities()

Exemple

Convert characters to HTML entities:

<?php
$str = "<? W3S?h????>";
echo htmlentities($str);
?>

Voici la sortie HTML du code ci-dessus (voir le code source) :

<!DOCTYPE html>
<html>
<body>
<© W3Sçh°°¦§>
</body>
</html>

Sortie du navigateur du code ci-dessus :

<? W3S?h????>

Définition et utilisation

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

Avis :Pour convertir les entités HTML en caractères, utilisez html_entity_decode() Fonction.

Avis :Utilisez get_html_translation_table() Fonction pour retourner le tableau de traduction utilisé par htmlentities().

Syntaxe

htmlentities(string,flags,character-set,double_encode)
Paramètres Description
string Obligatoire. Définir la chaîne de caractères à convertir.
flags

Optionnel. Définir comment traiter les guillemets, les codages non valides et le type de document utilisé.

Types de guillemets disponibles :

  • ENT_COMPAT - Par défaut. Encodé uniquement les guillemets doubles.
  • ENT_QUOTES - Encoder les guillemets doubles et simples.
  • ENT_NOQUOTES - Ne pas encoder les guillemets.

Codage non valide :

  • ENT_IGNORE - Ignorer les codages non valides, au lieu de renvoyer une chaîne de caractères vide. À éviter de préférence, car cela pourrait avoir un impact sur la sécurité.
  • ENT_SUBSTITUTE - Remplacer les codages non valides par un caractère spécifié, portant le caractère de remplacement Unicode U+FFFD (UTF-8) ou &#FFFD;, au lieu de renvoyer une chaîne de caractères vide.
  • ENT_DISALLOWED - Remplacer les points de code non valides dans le type de document spécifié par le caractère de remplacement Unicode U+FFFD (UTF-8) ou &#FFFD;.

Flags supplémentaires définissant le type de document utilisé :

  • ENT_HTML401 - Par défaut. Traiter le code comme HTML 4.01.
  • ENT_HTML5 - Traiter le code comme HTML 5.
  • ENT_XML1 - Traiter le code comme XML 1.
  • ENT_XHTML - Traiter le code comme XHTML.
character-set

Optionnel. Une chaîne de caractères définissant le jeu de caractères à utiliser.

Allowed values:

  • UTF-8 - Default. ASCII compatible 8-bit Unicode
  • ISO-8859-1 - Western Europe
  • ISO-8859-15 - Western Europe (includes euro sign + missing French and Finnish letters in ISO-8859-1)
  • cp866 - Cyrillic character set for DOS
  • cp1251 - Cyrillic character set for Windows
  • cp1252 - Western European character set for Windows
  • KOI8-R - Russian
  • BIG5 - Traditional Chinese, mainly used in Taiwan
  • GB2312 - Simplified Chinese, national standard character set
  • BIG5-HKSCS - Big5 with Hong Kong extension
  • Shift_JIS - Japanese
  • EUC-JP - Japanese
  • MacRoman - Character set used by the Mac operating system

Note:In versions of PHP before 5.4, unrecognized character sets are ignored and replaced by ISO-8859-1. Starting from PHP 5.4, unrecognized character sets are ignored and replaced by UTF-8.

double_encode

Optional. Boolean value, specifies whether to encode existing HTML entities.

  • TRUE - Default. Converts each entity.
  • FALSE - Will not encode existing HTML entities.

Technical details

Return value:

Return the converted string.

If string If the string contains invalid encoding, an empty string is returned unless ENT_IGNORE or ENT_SUBSTITUTE flags are set.

PHP version: 4+
Update log:

In PHP 5,character-set The default value of the parameter is changed to UTF-8.

In PHP 5.4, new features were added: ENT_SUBSTITUTE, ENT_DISALLOWED, ENT_HTML401, ENT_HTML5, ENT_XML1 and ENT_XHTML.

In PHP 5.3, a new feature was added: ENT_IGNORE.

In PHP 5.2.3, a new feature was added: double_encode Parameters.

In PHP 4.1, a new feature was added: character-set Parameters.

More examples

Example 1

Convert characters to HTML entities:

<?php
$str = "Bill & 'Steve'";
echo htmlentities($str, ENT_COMPAT); // Only convert double quotes
echo "<br>";
echo htmlentities($str, ENT_QUOTES); // Convert double quotes and single quotes
echo "<br>";
echo htmlentities($str, ENT_NOQUOTES); //Ne convertit aucune citation
?>

Voici la sortie HTML du code ci-dessus (voir le code source) :

<!DOCTYPE html>
<html>
<body>
Bill & 'Steve'<br>
Bill & 'Tarzan'<br>
Bill & 'Steve'
</body>
</html>

Sortie du navigateur du code ci-dessus :

Bill & 'Steve'
Bill & 'Steve'
Bill & 'Steve'

Exemple de exécution

Exemple 2

En utilisant le jeu de caractères Western European, certains caractères sont convertis en entités HTML :

<?php
$str = "Mon nom est Øyvind Øsane. Je suis Norvégien.";
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 Western European
?>

Voici la sortie HTML du code ci-dessus (voir le code source) :

<!DOCTYPE html>
<html>
<body>
Mon nom est Øyvind Øsane. Je suis Norvégien.
</body>
</html>

Sortie du navigateur du code ci-dessus :

Mon nom est Øyvind Øsane. Je suis Norvégien.

Exemple de exécution