PHP htmlentities() function

Example

Konvertieren Sie Zeichen in HTML-Symbole:

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

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

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

Die Browser-Ausgabe des obigen Codes:

<? W3S?h????>

Definition and usage

The htmlentities() function converts characters to HTML entities.

Hint:To convert HTML entities back to characters, use html_entity_decode() function.

Hint:Please use get_html_translation_table() Function to return the translation table used by htmlentities().

Syntax

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

Optional. Specifies how quotes, invalid encoding, and which document type should be handled.

Available quote types:

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

Invalid encoding:

  • ENT_IGNORE - Ignores invalid encoding rather than returning an empty string. Should be avoided as it may have security implications.
  • ENT_SUBSTITUTE - Replaces 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 - Replaces invalid code points in the specified document type with the Unicode replacement character U+FFFD (UTF-8) or &#FFFD;.

Additional flags for the specified document type:

  • ENT_HTML401 - Default. As HTML 4.01 code is processed.
  • ENT_HTML5 - As HTML 5 code is processed.
  • ENT_XML1 - As XML 1 code is processed.
  • ENT_XHTML - As XHTML code is processed.
character-set

Optional. A string that specifies the character set to be used.

Zulässige Werte:

  • UTF-8 - Standard. 8-Bit Unicode, kompatibel mit ASCII
  • ISO-8859-1 - Westeuropäisch
  • ISO-8859-15 - Westeuropäisch (hinzugefügt Euro-Symbol + fehlende französische und finnische Buchstaben in 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, Standardzeichensatz
  • BIG5-HKSCS - Big5 mit Hongkong-Erweiterung
  • Shift_JIS - Japanisch
  • EUC-JP - Japanisch
  • MacRoman - Zeichensatz, der auf dem Mac OS verwendet wird

Anmerkung:In Versionen von PHP vor 5.4 wurden 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. Konvertiert jeden Entity.
  • FALSE - Fügt nicht bestehende HTML-Entitäten hinzu.

Technische Details

Rückgabewert:

Gibt die umgewandelte Zeichenkette zurück.

Wenn string Enthält ungültige Encodings, wird eine leere Zeichenkette zurückgegeben, es sei denn, ENT_IGNORE oder ENT_SUBSTITUTE wurde gesetzt.

PHP-Version: 4+
Update-Protokoll:

In PHP 5:character-set Die Standardwerte für den Parameter geändert auf UTF-8.

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

Konvertieren Sie Zeichen in HTML-Symbole:

<?php
$str = "Bill & 'Steve'";
echo htmlentities($str, ENT_COMPAT); // Nur doppelte Anführungszeichen konvertieren
echo "<br>";
echo htmlentities($str, ENT_QUOTES); // Konvertiert doppelte und einfache Anführungszeichen
echo "<br>";
echo htmlentities($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 & 'Tarzan'<br>
Bill & 'Steve'
</body>
</html>

Die Browser-Ausgabe des obigen Codes:

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

Laufende Beispiele

Beispiel 2

Durch die Verwendung des westeuropäischen Zeichensatzes werden einige Zeichen in HTML-Entitäten umgewandelt:

<?php
$str = "Mein Name ist Øyvind Øsane. Ich bin Norweger.";
echo htmlentities($str, ENT_QUOTES, "ISO-8859-1"); 
// Konvertiert nur doppelte Anführungszeichen (nicht einfache Anführungszeichen) und verwendet das Zeichensatzsystem Westeuropa
?>

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

<!DOCTYPE html>
<html>
<body>
Mein Name ist Øyvind Øsane. Ich bin Norweger.
</body>
</html>

Die Browser-Ausgabe des obigen Codes:

Mein Name ist Øyvind Øsane. Ich bin Norweger.

Laufende Beispiele