htmlentities

(PHP 4, PHP 5, PHP 7, PHP 8)

htmlentitiesWandelt alle geeigneten Zeichen in entsprechende HTML-Entities um

Beschreibung

htmlentities(
    string$string,
    int$flags = ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401,
    ?string$encoding = null,
    bool$double_encode = true
): string

Diese Funktion unterscheidet sich nur dadurch von htmlspecialchars(), dass sie wirklich alle Zeichen, die entsprechende HTML-Entities haben, in diese Entsprechungen umwandelt. Mit der Funktion get_html_translation_table() kann die Übersetzungstabelle auf Basis der angegebenen flags-Konstanten abgefragt werden.

Sollen im umgekehrten Fall stattdessen HTML-Entities dekodiert werden, kann die Funktion html_entity_decode() verwendet werden.

Parameter-Liste

string

Die Eingabezeichenkette.

flags

Eine Bitmaske von einem oder mehreren der folgenden Flags, die die Behandlung von Anführungszeichen, ungültigen Zeichenketten und den genutzten Dokumententyp festlegen. Der Standardwert ist ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401.

Verfügbare flags-Konstanten
Name der KonstanteBeschreibung
ENT_COMPAT Wandelt doppelte Anführungszeichen um und lässt einfache Anführungszeichen unverändert.
ENT_QUOTES Wandelt sowohl doppelte als auch einfache Anführungszeichen um.
ENT_NOQUOTES Lässt sowohl doppelte als auch einfache Anführungszeichen unverändert.
ENT_IGNORE Verwirft ungültige Code-Unit-Sequenzen anstatt eine leere Zeichenkette zurückzugeben. Die Nutzung dieser Option ist nicht empfehlenswert, da sie » Auswirkungen auf die Sicherheit haben kann.
ENT_SUBSTITUTE Ersetzt ungültige Code-Unit-Sequenzen mit dem Unicode-Ersatzzeichen U+FFFD (UTF-8) oder &#FFFD; (andernfalls).
ENT_DISALLOWED Ersetzt Codepoints, welche in dem angegebenen Dokumenttyp ungültig sind, mit dem Unicode-Ersatzzeichen U+FFFD (UTF-8) oder &#FFFD; (andernfalls), anstatt sie zu belassen wie sie sind. Dies kann zum Beispiel nützlich sein, um die Wohlgeformtheit von XML-Dokumenten mit eingebetteten externen Inhalten sicherzustellen.
ENT_HTML401 Behandle Code als HTML 4.01.
ENT_XML1 Behandle Code als XML 1.
ENT_XHTML Behandle Code als XHTML.
ENT_HTML5 Behandle Code als HTML 5.
encoding

Ein optionaler Parameter, der die Zeichenkodierung für eine Konvertierung definiert.

Wird der Parameter encoding ausgelassen, so wird der Wert der Konfigurationsoption default_charset als Standardwert dafür verwendet.

Obwohl dieser Parameter technisch gesehen optional ist, wird dringend empfohlen, den korrekten Wert für den jeweiligen Code anzugeben, falls die Konfigurationsoption default_charset für die jeweilige Eingabe möglicherweise falsch gesetzt ist.

Die folgenden Zeichensätze werden unterstützt:

Unterstützte Zeichensätze
ZeichensatzAliasBeschreibung
ISO-8859-1ISO8859-1 Westeuropäisch, Latin-1.
ISO-8859-5ISO8859-5 Wenig verwendeter kyrillischer Zeichensatz (Latin/Cyrillic).
ISO-8859-15ISO8859-15 Westeuropäisch, Latin-9. Enthält das Euro-Zeichen sowie französische und finnische Buchstaben, die in Latin-1(ISO-8859-1) fehlen.
UTF-8  ASCII-kompatibles Multi-Byte 8-Bit Unicode.
cp866ibm866, 866 DOS-spezifischer kyrillischer Zeichensatz.
cp1251Windows-1251, win-1251, 1251 Windows-spezifischer kyrillischer Zeichensatz.
cp1252Windows-1252, 1252 Windows spezifischer Zeichensatz für westeuropäische Sprachen.
KOI8-Rkoi8-ru, koi8r Russisch.
BIG5950 Traditionelles Chinesisch, hauptsächlich in Taiwan verwendet.
GB2312936 Vereinfachtes Chinesisch, nationaler Standard-Zeichensatz.
BIG5-HKSCS  Big5 mit Hongkong-spezifischen Erweiterungen; traditionelles Chinesisch.
Shift_JISSJIS, SJIS-win, cp932, 932 Japanisch
EUC-JPEUCJP, eucJP-win Japanisch
MacRoman  Zeichensatz, der von Mac OS verwendet wurde.
''  Eine leere Zeichenkette aktiviert die Erkennung durch die Kodierung des Skripts (Zend multibyte), default_charset und die aktuelle Sprachumgebung (siehe nl_langinfo() und setlocale()), in dieser Reihenfolge. Nicht empfehlenswert.

Hinweis: Weitere Zeichensätze sind nicht implementiert. Statt dessen wird die Standard-Kodierung verwendet und eine Warnung ausgegeben.

double_encode

Wenn double_encode ausgeschaltet ist, verändert PHP keine bereits vorhandenen HTML-Entities. Standardmäßig wird jedoch alles umgewandelt.

Rückgabewerte

Gibt die kodierte Zeichenkette zurück.

Enthält string eine in dem übergebenen encoding ungültige Code-Unit-Sequenz, wird eine leere Zeichenkette zurückgegeben, sofern weder das ENT_IGNORE- noch das ENT_SUBSITUTE-Flag gesetzt sind.

Changelog

VersionBeschreibung
8.1.0flags geändert von ENT_COMPAT zu ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401.
8.0.0encoding ist jetzt nullable (akzeptiert den null-Wert).

Beispiele

Beispiel #1 Ein htmlentities()-Beispiel

<?php
$str
= "Ein 'Anführungszeichen' ist <b>fett</b>";

// Gibt aus: Ein 'Anf&uuml;hrungszeichen' ist &lt;b&gt;fett&lt;/b&gt;
echo htmlentities($str);

// Gibt aus: Ein &#039;Anf&uuml;hrungszeichen&#039; ist &lt;b&gt;fett&lt;/b&gt;
echo htmlentities($str, ENT_QUOTES);
?>

Beispiel #2 Verwendung von ENT_IGNORE

<?php
$str
= "\x8F!!!";

// Gibt eine leere Zeichenkette aus
echo htmlentities($str, ENT_QUOTES, "UTF-8");

// Gibt "!!!" aus
echo htmlentities($str, ENT_QUOTES | ENT_IGNORE, "UTF-8");
?>

Siehe auch

To Top