Maison  >  Article  >  développement back-end  >  La définition et l'utilisation de la fonction htmlentities() en php

La définition et l'utilisation de la fonction htmlentities() en php

墨辰丷
墨辰丷original
2018-06-02 11:29:531897parcourir

Cet article présente principalement la définition et l'utilisation de la fonction htmlentities() en PHP. Les amis intéressés peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

La fonction php htmlentities() convertit les caractères en entités HTML. Cet article présente l'utilisation de base et des exemples de la fonction php htmlentities() pour que les codeurs dans le besoin puissent s'y référer.

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 fonction html_entity_decode().

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

Syntaxe

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

Paramètre Description
chaîne Obligatoire. Spécifie la chaîne à convertir.
drapeaux
参数 描述
string 必需。规定要转换的字符串。
flags

可选。规定如何处理引号、无效的编码以及使用哪种文档类型。

可用的引号类型:

  • ENT_COMPAT - 默认。仅编码双引号。

  • ENT_QUOTES - 编码双引号和单引号。

  • ENT_NOQUOTES - 不编码任何引号。

无效的编码:

  • ENT_IGNORE - 忽略无效的编码,而不是让函数返回一个空的字符串。应尽量避免,因为这可能对安全性有影响。

  • ENT_SUBSTITUTE - 把无效的编码替代成一个指定的带有 Unicode 替代字符 U+FFFD(UTF-8)或者 FFFD; 的字符,而不是返回一个空的字符串。

  • ENT_DISALLOWED - 把指定文档类型中的无效代码点替代成 Unicode 替代字符 U+FFFD(UTF-8)或者 FFFD;。

规定使用的文档类型的附加 flags:

  • ENT_HTML401 - 默认。作为 HTML 4.01 处理代码。

  • ENT_HTML5 - 作为 HTML 5 处理代码。

  • ENT_XML1 - 作为 XML 1 处理代码。

  • ENT_XHTML - 作为 XHTML 处理代码。

character-set

可选。一个规定了要使用的字符集的字符串。

允许的值:

  • UTF-8 - 默认。ASCII 兼容多字节的 8 位 Unicode

  • ISO-8859-1 - 西欧

  • ISO-8859-15 - 西欧(加入欧元符号 + ISO-8859-1 中丢失的法语和芬兰语字母)

  • cp866 - DOS 专用 Cyrillic 字符集

  • cp1251 - Windows 专用 Cyrillic 字符集

  • cp1252 - Windows 专用西欧字符集

  • KOI8-R - 俄语

  • BIG5 - 繁体中文,主要在台湾使用

  • GB2312 - 简体中文,国家标准字符集

  • BIG5-HKSCS - 带香港扩展的 Big5

  • Shift_JIS - 日语

  • EUC-JP - 日语

  • MacRoman - Mac 操作系统使用的字符集

注释:在 PHP 5.4 之前的版本,无法被识别的字符集将被忽略并由 ISO-8859-1 替代。自 PHP 5.4 起,无法被识别的字符集将被忽略并由 UTF-8 替代。

double_encode

可选。布尔值,规定是否编码已存在的 HTML 实体。

  • TRUE - 默认。将对每个实体进行转换。

  • FALSE - 不会对已存在的 HTML 实体进行编码。

Facultatif. Spécifie comment gérer les guillemets, les encodages non valides et quel type de document utiliser.

Types de devis disponibles :
返回值:

返回被转换的字符串。

如果 string 包含无效的编码,则返回一个空的字符串,除非设置了 ENT_IGNORE 或者 ENT_SUBSTITUTE 标志。

PHP 版本: 4+
更新日志:

在 PHP 5 中,character-set 参数的默认值改为 UTF-8。

在 PHP 5.4 中,新增了:ENT_SUBSTITUTE、ENT_DISALLOWED、ENT_HTML401、ENT_HTML5、ENT_XML1 和 ENT_XHTML。

在 PHP 5.3 中,新增了 ENT_IGNORE。

在 PHP 5.2.3 中,新增了 double_encode 参数。

在 PHP 4.1 中,新增了 character-set 参数。

  • ENT_COMPAT - Par défaut. Seuls les guillemets doubles sont codés.
  • ENT_QUOTES - encode les guillemets doubles et simples.
  • ENT_NOQUOTES - N'encodez aucun guillemet.
Encodage invalide :
  • ENT_IGNORE - ignorer l'encodage invalide au lieu de laisser la fonction Renvoie un chaîne vide. Cela doit être évité car cela pourrait avoir un impact sur la sécurité.
  • ENT_SUBSTITUTE - Remplacez un encodage invalide avec le caractère spécifié par 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 - Remplacez les points de code non valides dans le type de document spécifié par les caractères de remplacement Unicode U+FFFD (UTF-8) ou FFFD ;.
Drapeaux supplémentaires spécifiant le type de document à utiliser :
  • ENT_HTML401 - Par défaut. Code traité en HTML 4.01.
  • ENT_HTML5 - Gère le code au format HTML 5.
  • ENT_XML1 - Comme code de traitement XML 1.
  • ENT_XHTML - comme code de traitement 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 multi-octets compatible ASCII
  • ISO-8859-1 - Europe occidentale
  • ISO-8859-15 - Europe occidentale Europe (Ajout du symbole de l'euro + lettres françaises et finlandaises manquantes dans l'ISO-8859-1)
  • cp866 - Jeu de caractères cyrilliques spécifiques au DOS
  • cp1251 - Jeu de caractères cyrilliques pour Windows
  • cp1252 - Jeu de caractères d'Europe occidentale pour Windows
  • KOI8-R - Russe
  • BIG5 - Chinois traditionnel, principalement utilisé à Taiwan
  • GB2312 - Chinois simplifié, jeu de caractères standard national
  • BIG5-HKSCS - Big5 avec extension Hong Kong
  • Shift_JIS - Japonais
  • EUC-JP - Japonais
  • MacRoman - Jeu de caractères utilisé par le système d'exploitation Mac
Remarque : Dans les versions antérieures à PHP 5.4, les jeux de caractères non reconnus seront ignorés. Et remplacé par ISO-8859-1. Depuis PHP 5.4, les jeux de caractères non reconnus sont ignorés et remplacés par UTF-8.
double_encode Facultatif. Valeur booléenne qui spécifie s'il faut encoder les entités HTML existantes.
  • TRUE - Par défaut. Chaque entité sera convertie.
  • FALSE - Les entités HTML existantes ne seront pas encodées.
Détails techniques
Valeur de retour : Renvoie la chaîne convertie. Si la chaîne contient un encodage invalide, une chaîne vide est renvoyée sauf si l'indicateur ENT_IGNORE ou ENT_SUBSTITUTE est défini.
Version PHP : 4+
Journal de mise à jour : Dans PHP 5, la valeur par défaut du paramètre character-set est modifiée en UTF-8. En PHP 5.4, nouveaux : ENT_SUBSTITUTE, ENT_DISALLOWED, ENT_HTML401, ENT_HTML5, ENT_XML1 et ENT_XHTML. Dans PHP 5.3, ENT_IGNORE a été ajouté. Dans PHP 5.2.3, le paramètre double_encode est ajouté. Dans PHP 4.1, il y a un nouveau paramètre character-set.

Exemple 1

Convertir les caractères en entités HTML :

<?php 
$str = "Bill & &#39;Steve&#39;"; 
echo htmlentities($str, ENT_COMPAT); // 只转换双引号 
echo "<br>"; 
echo htmlentities($str, ENT_QUOTES); // 转换双引号和单引号 
echo "<br>"; 
echo htmlentities($str, ENT_NOQUOTES); // 不转换任何引号 
?>

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

<!DOCTYPE html> 
<html> 
<body> 
Bill & &#39;Steve&#39;<br> 
Bill & &#39;Tarzan&#39;<br> 
Bill & &#39;Steve&#39;
</body> 
</html>

Sortie du navigateur du code ci-dessus :

Bill & &#39;Steve&#39;
Bill & &#39;Steve&#39;
Bill & &#39;Steve&#39;

Exemple 2

Convertir certains caractères en entités HTML en utilisant le jeu de caractères d'Europe occidentale :

<?php 
$str = "My name is ?yvind ?sane. I&#39;m Norwegian."; 
echo htmlentities($str, ENT_QUOTES, "ISO-8859-1"); 
// Will only convert double quotes (not single quotes), and uses the character-set Western European 
?>

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

<!DOCTYPE html> 
<html> 
<body> 
My name is Øyvind Åsane. I&#39;m Norwegian. 
</body> 
</html>

La sortie du navigateur du code ci-dessus :

Mon mon nom est ?yvind ?sane. Je suis norvégien.

Résumé : ce qui précède représente l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun.

Recommandations associées :

Résumé des compétences de base pour le fonctionnement de la base de données PHP+MariaDB

phpimplémentation de contrôle de la méthode de base de données mysqli

Méthode PHP pour accéder à la fonction de paiement instantané d'Alipay

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn