(PHP 4, PHP 5, PHP 7, PHP 8)
htmlentities — Wandelt alle geeigneten Zeichen in entsprechende HTML-Entities um
$string,$flags = ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401,$encoding = null,$double_encode = true
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.
stringDie 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.
| Name der Konstante | Beschreibung |
|---|---|
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. |
encodingEin 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:
| Zeichensatz | Alias | Beschreibung |
|---|---|---|
| ISO-8859-1 | ISO8859-1 | Westeuropäisch, Latin-1. |
| ISO-8859-5 | ISO8859-5 | Wenig verwendeter kyrillischer Zeichensatz (Latin/Cyrillic). |
| ISO-8859-15 | ISO8859-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. | |
| cp866 | ibm866, 866 | DOS-spezifischer kyrillischer Zeichensatz. |
| cp1251 | Windows-1251, win-1251, 1251 | Windows-spezifischer kyrillischer Zeichensatz. |
| cp1252 | Windows-1252, 1252 | Windows spezifischer Zeichensatz für westeuropäische Sprachen. |
| KOI8-R | koi8-ru, koi8r | Russisch. |
| BIG5 | 950 | Traditionelles Chinesisch, hauptsächlich in Taiwan verwendet. |
| GB2312 | 936 | Vereinfachtes Chinesisch, nationaler Standard-Zeichensatz. |
| BIG5-HKSCS | Big5 mit Hongkong-spezifischen Erweiterungen; traditionelles Chinesisch. | |
| Shift_JIS | SJIS, SJIS-win, cp932, 932 | Japanisch |
| EUC-JP | EUCJP, 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.
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.
| Version | Beschreibung |
|---|---|
| 8.1.0 |
flags geändert von
ENT_COMPAT zu ENT_QUOTES |
ENT_SUBSTITUTE | ENT_HTML401.
|
| 8.0.0 |
encoding ist jetzt nullable (akzeptiert den
null-Wert).
|
Beispiel #1 Ein htmlentities()-Beispiel
<?php
$str = "Ein 'Anführungszeichen' ist <b>fett</b>";
// Gibt aus: Ein 'Anführungszeichen' ist <b>fett</b>
echo htmlentities($str);
// Gibt aus: Ein 'Anführungszeichen' ist <b>fett</b>
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");
?>