htmlspecialchars()
Die Funktion htmlspecialchars() wird verwendet, um Sonderzeichen in ihre entsprechenden HTML-Entities umzuwandeln. Die Syntax der Funktion htmlspecialchars() lautet wie folgt:
PHP-Syntax
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
$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 <strong> und <​/strong> 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 " 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
$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 ' 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
$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
$string = "Hello <strong>World</strong>!";
$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 <- und >-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?