PHP htmlspecialchars()Funktionen

PHP String 参考手册PHP-String-Referenzhandbuch

Beispiele

Wandeln Sie die vordefinierten Zeichen "<" (kleiner als) und ">" (größer als) in HTML-Entitäten um:

<?php $str = "Dies ist ein <b>fetter</b> Text."; echo htmlspecialchars($str); ?>

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

<!DOCTYPE html> <html> <body> Dies ist etwas &lt;b&gt;fett&lt;/b&gt; text. </body> </html>

Die Browser-Ausgabe des obigen Codes lautet wie folgt:

Dies ist ein <b>fetter</b> Text.

Beispiel ausführen »

Definition und Verwendung

Die Funktion htmlspecialchars() wandelt einige vordefinierte Zeichen in HTML-Entitäten um.

Die vordefinierten Zeichen sind:

  • & (kaufmännisches Und) wird zu &amp;
  • " (doppeltes Anführungszeichen) wird zu &quot;
  • ' (einfaches Anführungszeichen) wird zu &#039;
  • < (kleiner als) wird zu &lt;
  • > (größer als) wird zu &gt;

Tipp:Um spezielle HTML-Entitäten zurück in Zeichen umzuwandeln, verwenden Sie die htmlspecialchars_decode()-Funktion.


Syntax

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

Parameter Beschreibung
string Erforderlich. Gibt die zu konvertierende Zeichenfolge an.
Flags Optional. Legt fest, wie mit Anführungszeichen, ungültiger Kodierung und dem zu verwendenden Dokumenttyp umgegangen wird.

Verfügbare Anführungszeichen-Typen:

  • ENT_COMPAT - Standard. Kodiert nur doppelte Anführungszeichen.
  • ENT_QUOTES - Kodiert doppelte und einfache Anführungszeichen.
  • ENT_NOQUOTES - Kodiert keine Anführungszeichen.

Ungültige Kodierung:

  • ENT_IGNORE - Ignoriert ungültige Kodierung, anstatt die Funktion eine leere Zeichenkette zurückgeben zu lassen. Sollte vermieden werden, da dies Sicherheitsimplikationen haben kann.
  • ENT_SUBSTITUTE - Ersetzt ungültige Kodierung durch ein angegebenes Zeichen mit dem Unicode-Ersatzzeichen U+FFFD (UTF-8) oder &#FFFD;, anstatt eine leere Zeichenkette zurückzugeben.
  • ENT_DISALLOWED - Ersetzt ungültige Codepunkte im angegebenen Dokumenttyp durch das Unicode-Ersatzzeichen U+FFFD (UTF-8) oder &#FFFD;.

Zusätzliche Flags, die den zu verwendenden Dokumenttyp angeben:

  • ENT_HTML401 - Standard. Behandelt Code als HTML 4.01.
  • ENT_HTML5 - Behandelt Code als HTML 5.
  • ENT_XML1 - Behandelt Code als XML 1.
  • ENT_XHTML - Behandelt Code als XHTML.
Zeichensatz Optional. Eine Zeichenfolge, die den zu verwendenden Zeichensatz angibt.

Zulässige Werte:

  • UTF-8 - Standard. ASCII-kompatibles Multibyte-8-Bit-Unicode
  • ISO-8859-1 - Westeuropäisch
  • ISO-8859-15 - Westeuropäisch (ergänzt das Euro-Zeichen + französische und finnische Buchstaben, die in ISO-8859-1 fehlen)
  • cp866 - DOS-spezifischer kyrillischer Zeichensatz
  • cp1251 - Windows-spezifischer kyrillischer Zeichensatz
  • cp1252 - Windows-spezifischer westeuropäischer Zeichensatz
  • KOI8-R - Russisch
  • BIG5 - Traditionelles Chinesisch, hauptsächlich in Taiwan verwendet
  • GB2312 - Vereinfachtes Chinesisch, nationaler Standardzeichensatz
  • BIG5-HKSCS - Big5 mit Hongkong-Erweiterungen
  • Shift_JIS - Japanisch
  • EUC-JP - Japanisch
  • MacRoman - Vom Mac-Betriebssystem verwendeter Zeichensatz

Hinweis:In Versionen vor PHP 5.4 werden nicht erkannte Zeichensätze ignoriert und durch ISO-8859-1 ersetzt. Seit PHP 5.4 werden nicht erkannte Zeichensätze ignoriert und durch UTF-8 ersetzt.

double_encode Optional. Ein boolescher Wert, der angibt, ob vorhandene HTML-Entitäten kodiert werden sollen.
  • TRUE - Standard. Konvertiert jede Entity.
  • FALSE - Vorhandene HTML-Entities werden nicht kodiert.

Technische Details

Rückgabewert: Gibt die konvertierte Zeichenfolge zurück.

Wennstringeine ungültige Kodierung enthält, wird eine leere Zeichenfolge zurückgegeben, es sei denn, die Flags ENT_IGNORE oder ENT_SUBSTITUTE sind gesetzt.
PHP-Version: 4+
Änderungsprotokoll: In PHP 5, wurde der Standardwert des Parameterscharacter-setauf UTF-8 geändert.

In PHP 5.4 wurden hinzugefügt: 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 derdouble_encode-Parameter hinzugefügt.

In PHP 4.1 wurde dercharacter-set-Parameter hinzugefügt.


Weitere Beispiele

Beispiel 1

Einige vordefinierte Zeichen in HTML-Entitäten umwandeln:

<?php $str = "Jane & 'Tarzan'"; echo htmlspecialchars($str, ENT_COMPAT); //Standard, kodiert nur doppelte Anführungszeichen echo "<br>"; echo htmlspecialchars($str, ENT_QUOTES); //Kodiert doppelte und einfache Anführungszeichen echo "<br>"; echo htmlspecialchars($str, ENT_NOQUOTES); //Kodiert keine Anführungszeichen ?>

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

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

Die Browser-Ausgabe des obigen Codes lautet wie folgt:

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

Beispiel ausführen »

Beispiel 2

Doppelte Anführungszeichen in HTML-Entitäten umwandeln:

<?php $str = 'Ich liebe "PHP".'; echo htmlspecialchars($str, ENT_QUOTES); //Kodiert doppelte und einfache Anführungszeichen ?>
;

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

<!DOCTYPE html> <html> <body> Ich liebe &quot;PHP&quot;. </body> </html>

Die Browser-Ausgabe des obigen Codes lautet wie folgt:

Ich liebe "PHP".

Beispiel ausführen »


PHP String 参考手册PHP-String-Referenzhandbuch Weitere Erweiterungen