Zum Inhalt springen

htmlspecialchars()

Die Funktion htmlspecialchars() wird verwendet, um Sonderzeichen in ihre entsprechenden HTML-Entities umzuwandeln. Die Syntax der Funktion htmlspecialchars() lautet wie folgt:

PHP-Syntax

php
string htmlspecialchars ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = ini_get("default_charset") [, bool $double_encode = true ]]] )

Die Funktion benötigt einen erforderlichen Parameter, $string, der die Zeichenkette mit den umzuwandelnden Sonderzeichen enthält. Darüber hinaus verfügt die Funktion über drei optionale Parameter: $flags, $encoding und $double_encode.

Hier ist ein Beispiel für die Verwendung der Funktion htmlspecialchars():

Grundlegendes Beispiel

php
<?php
$string = "Hello <strong>World</strong>!";
$encoded_string = htmlspecialchars($string);
echo $encoded_string;
?>

In diesem Beispiel enthält die Zeichenkettenvariable $string Text mit Sonderzeichen. Wir verwenden die Funktion htmlspecialchars(), um die Sonderzeichen in ihre entsprechenden HTML-Entities umzuwandeln.

Wie Sie sehen können, wurden die <strong>-Tags in &lt;strong&gt; und &lt;&#8203;/strong&gt; umgewandelt.

Die Funktion htmlspecialchars() kann außerdem einen zweiten Parameter, $flags, entgegennehmen, der festlegt, wie mit Anführungszeichen umgegangen wird und welche Menge an Entities verwendet werden soll. Der Standardwert für $flags ist ENT_COMPAT | ENT_HTML401, was doppelte Anführungszeichen in &quot; umwandelt, einzelne Anführungszeichen jedoch unverändert lässt. Um sowohl einzelne als auch doppelte Anführungszeichen umzuwandeln, verwenden Sie das Flag ENT_QUOTES.

Hier ist ein Beispiel für die Verwendung der Funktion htmlspecialchars() mit dem Flag ENT_QUOTES:

Verwenden des ENT_QUOTES-Flags

php
<?php
$string = "I'm a paragraph";
$encoded_string = htmlspecialchars($string, ENT_QUOTES);
echo $encoded_string;
?>

In diesem Beispiel enthält die Zeichenkettenvariable $string Text mit einem einzelnen Anführungszeichen. Wir verwenden die Funktion htmlspecialchars() mit dem Flag ENT_QUOTES, um die Sonderzeichen in ihre entsprechenden HTML-Entities umzuwandeln und das einzelne Anführungszeichen zu behandeln.

Wie Sie sehen können, wurde das einzelne Anführungszeichen in &#039; umgewandelt.

Die Funktion htmlspecialchars() kann außerdem einen dritten Parameter, $encoding, entgegennehmen, der die Zeichenkodierung der Ausgabekette festlegt. Der Standardwert für $encoding entspricht dem Wert der Konfigurationsoption default_charset.

Hier ist ein Beispiel für die Verwendung der Funktion htmlspecialchars() mit einer bestimmten Kodierung:

Angeben der Kodierung

php
<?php
$string = "Hello World!";
$encoded_string = htmlspecialchars($string, ENT_COMPAT | ENT_HTML401, "UTF-8");
echo $encoded_string;
?>

In diesem Beispiel enthält die Zeichenkettenvariable $string Text. Wir verwenden die Funktion htmlspecialchars() mit der UTF-8-Kodierung, um die Sonderzeichen in ihre entsprechenden HTML-Entities umzuwandeln.

Wie Sie sehen können, spiegelt die Ausgabe die angegebene UTF-8-Kodierung korrekt wider.

Die Funktion htmlspecialchars() kann außerdem einen vierten Parameter, $double_encode, entgegennehmen, der festlegt, ob bereits vorhandene Entities kodiert werden sollen oder nicht. Der Standardwert für $double_encode ist true, was bedeutet, dass vorhandene Entities kodiert werden.

Hier ist ein Beispiel für die Verwendung der Funktion htmlspecialchars() mit auf false gesetztem $double_encode:

Deaktivieren der doppelten Kodierung

php
<?php
$string = "Hello &lt;strong&gt;World&lt;/strong&gt;!";
$encoded_string = htmlspecialchars($string, ENT_COMPAT | ENT_HTML401, "UTF-8", false);
echo $encoded_string;
?>

In diesem Beispiel enthält die Zeichenkettenvariable $string Text mit HTML-Entities. Wir verwenden die Funktion htmlspecialchars() mit auf false gesetztem $double_encode, um die Sonderzeichen in ihre entsprechenden HTML-Entities umzuwandeln, ohne vorhandene Entities erneut zu kodieren.

Wie Sie sehen können, bleiben die vorhandenen &lt;- und &gt;-Entities unverändert, da $double_encode auf false gesetzt ist.

Die Funktion htmlspecialchars() ist ein nützliches Werkzeug für den Umgang mit HTML-Daten, beispielsweise Daten aus einem HTML-Formular oder einer HTML-Datei. Sie hilft Ihnen dabei, Sonderzeichen in ihre entsprechenden HTML-Entities umzuwandeln, wodurch Ihr Code vielseitiger und flexibler wird. Durch die Beherrschung dieser Funktion können Sie zu einem kompetenteren PHP-Entwickler werden.

Wir hoffen, dass dieser Artikel Ihnen geholfen hat, die Funktion htmlspecialchars() in PHP besser zu verstehen.

Praxis

Was ist die Hauptaufgabe der htmlspecialchars()-Funktion in PHP?

Finden Sie das nützlich?

Dual-run-Vorschau — vergleichen Sie mit den Symfony-Routen live.