# htmlentities

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

htmlentities — Wandelt 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 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.

`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
  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.

### 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

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).

### Beispiele

Beispiel #1 Ein htmlentities()-Beispiel

`<?php
$str = "Ein 'Anführungszeichen' ist <b>fett</b>";
echo htmlentities($str);
echo "\n\n";
echo htmlentities($str, ENT_COMPAT);
?>`

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

    Ein &#039;Anf&uuml;hrungszeichen&#039; ist &lt;b&gt;fett&lt;/b&gt;

    Ein 'Anf&uuml;hrungszeichen' ist &lt;b&gt;fett&lt;/b&gt;

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

- html_entity_decode() - Wandelt HTML-Entities in ihre entsprechenden Zeichen um
- get_html_translation_table() - Liefert die Umwandlungstabelle, die von htmlspecialchars und htmlentities verwendet wird
- htmlspecialchars() - Wandelt Sonderzeichen in HTML-Entities um
- nl2br() - Fügt vor allen Zeilenumbrüchen eines Strings HTML-Zeilenumbrüche ein
- urlencode() - URL-kodiert einen String

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open