FILTER_SANITIZE_STRING is deprecated

FILTER_SANITIZE_STRING ist deprecated was ist die alternative?

Seit PHP 8.1.0 ist FILTER_SANITIZE_STRING deprecated. Lassen Sie uns sehen, welche Funktion Sie stattdessen verwenden sollten.

Was ist FILTER_SANITIZE_STRING?

Mit diesem Sanitization-Filter können Sie Tags entfernen und doppelte und einfache Anführungszeichen in HTML kodieren. Sie können auch Sonderzeichen entfernen oder kodieren.

Wenn Sie diesen Filter mit PHP 8.1.0 oder höher verwenden, erhalten Sie eine deprecated warning.

FILTER_SANITIZE_STRING is deprecated
Deprecated warning von FILTER_SANITIZE_STRING im PHP-Error log

Die offizielle PHP-Dokumentation empfiehlt htmlspecialchars anstelle von FILTER_SANITIZE_STRING

Schauen wir uns einige Beispiele an

Beispiel mit htmlspecialchars

in diesem Beispiel erlaubt „ENT_QUOTES“ das Kodiert doppelte und einfache Anführungszeichen

Weiter Filtermöglichkeiten stehen zur verfügung:

ENT_COMPAT – Voreinstellung. Kodiert nur doppelte Anführungszeichen
ENT_QUOTES – Kodiert doppelte und einfache Anführungszeichen
ENT_NOQUOTES – Verschlüsselt keine Anführungszeichen

$string_1 = htmlspecialchars("<h2>irgendeine Überschrift</h2>", ENT_QUOTES); 
// &lt;h2&gt;irgendeine Überschrift&lt;/h2&gt;

Verwendung von html_entity_decode

html_entity_decode – Wandelt HTML-Entities in ihre entsprechenden Zeichen um

$string_2 = html_entity_decode($string_1); 
// <h2>irgendeine Überschrift</h2>

Benutzen von FILTER_SANITIZE_STRING

$string_3 = "<h2>irgendeine Überschrift</h2>";
filter_var ( $string_3, FILTER_SANITIZE_STRING); 
// <h2>irgendeine Überschrift</h2>

Wenn Sie also eine Zeichenkette bereinigen und HTML-Zeichen entfernen oder kodieren wollen, verwenden Sie htmlspecialchars()

Mehr infos findes du auch unter der Offizellen PHP Dokumentation (https://www.php.net/manual/en/function.htmlspecialchars.php)

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert