Heim  >  Artikel  >  Backend-Entwicklung  >  Die Definition und Verwendung der Funktion htmlentities() in PHP

Die Definition und Verwendung der Funktion htmlentities() in PHP

墨辰丷
墨辰丷Original
2018-06-02 11:29:531853Durchsuche

Dieser Artikel stellt hauptsächlich die Definition und Verwendung der Funktion htmlentities() in PHP vor. Ich hoffe, dass er für alle hilfreich ist.

Die PHP-Funktion htmlentities() konvertiert Zeichen in HTML-Entitäten. In diesem Artikel werden die grundlegende Verwendung und Beispiele der PHP-Funktion htmlentities() vorgestellt, auf die Programmierer zurückgreifen können.

Definition und Verwendung

HTMLentities()-Funktion wandelt Zeichen in HTML-Entitäten um.

Tipp: Um HTML-Entitäten wieder in Zeichen umzuwandeln, verwenden Sie die Funktion html_entity_decode().

Tipp: Bitte verwenden Sie die Funktion get_html_translation_table(), um die von htmlentities() verwendete Übersetzungstabelle zurückzugeben.

Syntax

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

Parameter Beschreibung
Zeichenfolge Erforderlich. Gibt die zu konvertierende Zeichenfolge an.
Flags
参数 描述
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 实体进行编码。

Optional. Gibt an, wie mit Anführungszeichen und ungültigen Kodierungen umgegangen wird und welcher Dokumenttyp verwendet werden soll.

Verfügbare Anführungszeichentypen:
返回值:

返回被转换的字符串。

如果 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 – Standard. Es werden nur doppelte Anführungszeichen codiert.
  • ENT_QUOTES – kodiert doppelte und einfache Anführungszeichen.
  • ENT_NOQUOTES – Keine Anführungszeichen kodieren.
Ungültige Kodierung:
  • ENT_IGNORE – ungültige Kodierung ignorieren, anstatt die Funktion an zu lassen leere Zeichenfolge. Dies sollte vermieden werden, da dies Auswirkungen auf die Sicherheit haben kann.
  • ENT_SUBSTITUTE – Ersetzen Sie eine ungültige Codierung durch das angegebene Zeichen durch das Unicode-Ersatzzeichen U+FFFD (UTF-8) oder FFFD, anstatt eine leere Zeichenfolge zurückzugeben.
  • ENT_DISALLOWED – Ersetzen Sie ungültige Codepunkte im angegebenen Dokumenttyp durch die Unicode-Ersatzzeichen U+FFFD (UTF-8) oder FFFD;.
Zusätzliche Flags, die den zu verwendenden Dokumenttyp angeben:
  • ENT_HTML401 – Standard. Code verarbeitet als HTML 4.01.
  • ENT_HTML5 – Behandelt Code als HTML 5.
  • ENT_XML1 – Als XML 1-Verarbeitungscode.
  • ENT_XHTML – als XHTML-Verarbeitungscode.
Zeichensatz Optional. Eine Zeichenfolge, die den zu verwendenden Zeichensatz angibt. Zulässige Werte:
  • UTF-8 – Standard. ASCII-kompatibler Multibyte-8-Bit-Unicode
  • ISO-8859-1 – Westeuropa
  • ISO-8859-15 – Westeuropa Europa (Euro-Symbol hinzugefügt + französische und finnische Buchstaben fehlen in ISO-8859-1)
  • cp866 – DOS-spezifischer kyrillischer Zeichensatz
  • cp1251 – Kyrillischer Zeichensatz für Windows
  • cp1252 – Westeuropäischer Zeichensatz für Windows
  • KOI8-R – Russisch
  • BIG5 – Traditionelles Chinesisch, hauptsächlich in Taiwan verwendet
  • GB2312 – Vereinfachtes Chinesisch, nationaler Standardzeichensatz
  • BIG5-HKSCS – Big5 mit Hongkong-Erweiterung
  • Shift_JIS – Japanisch
  • EUC-JP – Japanisch
  • MacRoman – Zeichensatz, der vom Mac-Betriebssystem verwendet wird
Hinweis: In Versionen vor PHP 5.4 werden nicht erkannte Zeichensätze ignoriert ersetzt durch ISO-8859-1. Ab PHP 5.4 werden nicht erkannte Zeichensätze ignoriert und durch UTF-8 ersetzt.
double_encode Optional. Boolescher Wert, der angibt, ob vorhandene HTML-Entitäten codiert werden sollen.
  • TRUE – Standard. Jede Entität wird konvertiert.
  • FALSE – Vorhandene HTML-Entitäten werden nicht codiert.
Technische Details
Rückgabewert: Gibt die konvertierte Zeichenfolge zurück. Wenn die Zeichenfolge eine ungültige Codierung enthält, wird eine leere Zeichenfolge zurückgegeben, es sei denn, das Flag ENT_IGNORE oder ENT_SUBSTITUTE ist gesetzt.
PHP-Version: 4+
Update-Protokoll: In PHP 5 wird der Standardwert des Parameters character-set in UTF-8 geändert. In PHP 5.4 neu: ENT_SUBSTITUTE, ENT_DISALLOWED, ENT_HTML401, ENT_HTML5, ENT_XML1 und ENT_XHTML. In PHP 5.3 wurde ENT_IGNORE hinzugefügt. In PHP 5.2.3 wurde der Parameter double_encode hinzugefügt. In PHP 4.1 gibt es einen neuen character-set-Parameter.

Beispiel 1

Zeichen in HTML-Entitäten konvertieren:

<?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); // 不转换任何引号 
?>

Die HTML-Ausgabe des obigen Codes ist wie folgt (Quellcode anzeigen):

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

Browserausgabe des obigen Codes:

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

Beispiel 2

Konvertieren Sie einige Zeichen in HTML-Entitäten, indem Sie den westeuropäischen Zeichensatz verwenden:

<?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 
?>

Die HTML-Ausgabe des obigen Codes lautet wie folgt (Quellcode anzeigen):

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

Die Browser-Ausgabe des obigen Codes:

Mein Name ist ?yvind ?sane Norwegisch.

Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, dass er für das Lernen aller hilfreich sein wird.

Verwandte Empfehlungen:

Memo-Zusammenfassung der Grundkenntnisse für den PHP+MariaDB-Datenbankbetrieb

phpImplementierung von Steuerung der MySQL-Datenbankmethode

PHP-Methode für den Zugriff auf die Sofortzahlungsfunktion von Alipay

Das obige ist der detaillierte Inhalt vonDie Definition und Verwendung der Funktion htmlentities() in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn