PHP htmlspecialchars() function

Example

Convert predefined characters "<" (less than) and ">" (greater than) to HTML entities:

<?php
$str = "This is some <b>bold</b> text.";
echo htmlspecialchars($str);
?>

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

<!DOCTYPE html>
<html>
<body>
This is some <b>bold</b> text.
</body>
</html>

Die Browser-Ausgabe des obigen Codes:

This is some <b>bold</b> text.

Laufende Beispiele

Definition and usage

The htmlspecialchars() function converts predefined characters to HTML entities.

The predefined characters are:

  • & (ampersand) becomes &
  • " (double quote) becomes "
  • ' (single quote) becomes '
  • < (less than) becomes <
  • > (greater than) becomes >

Tip:To convert special HTML entities back to characters, use htmlspecialchars_decode() Function.

Syntax

htmlspecialchars(string,flags,character-set,double_encode)
Parameter Description
string Required. Specify the string to be converted.
flags

Optional. Specify how to handle quotes, invalid encoding, and which document type to use.

Available quote types:

  • ENT_COMPAT - Default. Encode double quotes only.
  • ENT_QUOTES - Encode both double and single quotes.
  • ENT_NOQUOTES - Do not encode any quotes.

Invalid encoding:

  • ENT_IGNORE - Ignore invalid encoding rather than returning an empty string from the function. It should be avoided as it may have security implications.
  • ENT_SUBSTITUTE - Substitute invalid encoding with a specified character that includes the Unicode replacement character U+FFFD (UTF-8) or &#FFFD;, rather than returning an empty string.
  • ENT_DISALLOWED - Substitute invalid code points in the specified document type with the Unicode replacement character U+FFFD (UTF-8) or &#FFFD;.

Zusätzliche Flags für die festgelegte Dokumentart:

  • ENT_HTML401 - Standard. Wird als HTML 4.01 behandelt.
  • ENT_HTML5 - Wird als HTML 5 behandelt.
  • ENT_XML1 - Wird als XML 1 behandelt.
  • ENT_XHTML - Wird als XHTML behandelt.
character-set

Optional. Eine Zeichenfolge, die den zu verwendenden Zeichensatz angibt.

Zulässige Werte:

  • UTF-8 - Standard. 8-Bit Unicode, kompatibel mit ASCII
  • ISO-8859-1 - Westeuropäischer Zeichensatz
  • ISO-8859-15 - Westeuropäischer Zeichensatz (mit Euro-Symbolen + fehlenden französischen und finnischen Buchstaben aus ISO-8859-1)
  • cp866 - Kyrillischer Zeichensatz für DOS
  • 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 - Chinesisch, nationales Zeichensatzsystem
  • BIG5-HKSCS - Big5 mit Hongkong-Erweiterung
  • Shift_JIS - Japanisch
  • EUC-JP - Japanisch
  • MacRoman - Zeichensatz, der auf dem Mac OS verwendet wird

Kommentar:In Versionen von PHP 5.4 und früher werden nicht erkannte Zeichensätze ignoriert und durch ISO-8859-1 ersetzt. Ab PHP 5.4 werden nicht erkannte Zeichensätze ignoriert und durch UTF-8 ersetzt.

double_encode

Optional. Boolescher Wert, der angibt, ob bestehende HTML-Entitäten kodiert werden sollen.

  • TRUE - Standard. Führt die Umwandlung jeder Entität durch.
  • FALSE - Führt keine Kodierung bestehender HTML-Entitäten durch.

Technische Details

Rückgabewert:

Gibt die umgewandelte Zeichenfolge zurück.

Wenn string Enthält eine ungültige Kodierung, wird eine leere Zeichenfolge zurückgegeben, es sei denn, das ENT_IGNORE- oder ENT_SUBSTITUTE-Symbol wurde gesetzt.

PHP-Version: 4+
Update-Protokoll:

In PHP 5 wurde:character-set Die Standardwerte für den Parameter wurden auf 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 hinzugefügt: double_encode Parameter.

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

Mehr Beispiele

Beispiel 1

Einige vorgegebene Zeichen in HTML-Entities umwandeln:

<?php
$str = "Bill & 'Steve'";
echo htmlspecialchars($str, ENT_COMPAT); // Nur doppelte Anführungszeichen umwandeln
echo "<br>";
echo htmlspecialchars($str, ENT_QUOTES); // Double- und Single-Quotes umwandeln
echo "<br>";
echo htmlspecialchars($str, ENT_NOQUOTES); // Keine Anführungszeichen umwandeln
?>

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

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

Die Browser-Ausgabe des obigen Codes:

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

Laufende Beispiele

Beispiel 2

Umwandeln von doppelten Anführungszeichen in HTML-Entities:

<?php
$str = 'I love "PHP".';
echo htmlspecialchars($str, ENT_QUOTES); // Double- und Single-Quotes umwandeln
?>

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

<!DOCTYPE html>
<html>
<body>
Ich liebe "PHP".
</body>
</html>

Die Browser-Ausgabe des obigen Codes:

Ich liebe "PHP".

Laufende Beispiele