(PHP 4, PHP 5, PHP 7)
strip_tags — Entfernt HTML- und PHP-Tags aus einem String
Diese Funktion versucht, einen String zurückzugeben, der die um alle NULL
Bytes, HTML- und PHP-Tags reduzierte Version von str
darstellt.
Sie verwendet die gleiche Engine zum Entfernen der Tags wie
fgetss().
str
Die Eingabezeichenkette.
allowable_tags
Sie können den optionalen zweiten Parameter verwenden, um die Tags anzugeben, die nicht entfernt werden sollen. Diese werden entweder als string, oder von PHP 7.4.0 an, als array angegeben. Dem Beispiel weiter unten kann das Format dieses Parameters entnommen werden.
Hinweis:
HTML-Kommentare und PHP-Tags werden ebenfalls entfernt. Dieses Verhalten ist hartkodiert und kann nicht mittels
allowable_tags
verändert werden.
Hinweis:
In PHP 5.3.4 und neuer werden selbst-schließende XHTML-Tags ignoriert, und nur nicht-selbst-schließende Tags sollten in
allowable_tags
verwendet werden. Um beispielsweise sowohl<br;>
als auch<br/>
zu erlauben, sollte folgendes verwendet werden:<?php
strip_tags($input, '<br>');
?>
Gibt die reduzierte Zeichenkette zurück.
Version | Beschreibung |
---|---|
7.4.0 |
Der allowable_tags Parameter akzeptiert nun alternativ ein array.
|
Beispiel #1 strip_tags()-Beispiel
<?php
$text = '<p>Test-Absatz.</p><!-- Kommentar --> <a href="#fragment">Anderer Text</a>';
echo strip_tags($text);
echo "\n";
// <p> und <a> zulassen
echo strip_tags($text, '<p><a>');
// von PHP 7.4.0 an kann die vorherige Zeile wie folgt geschrieben werden:
// echo strip_tags($text, ['p', 'a']);
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
Test-Absatz. Anderer Text <p>Test-Absatz.</p> <a href="#fragment">Anderer Text</a>
Diese Funktion sollte nicht verwendet werden, um zu versuchen XSS-Attacken zu verhindern. Statt dessen sind geeignetere Funktionen wie htmlspecialchars(), oder andere Mittel abhängig vom Ausgabekontext, zu verwenden.
Da strip_tags() HTML nicht wirklich validiert, kann es passieren, dass bei unvollständigen oder unkorrekten Tags mehr Text/Daten gelöscht werden als erwartet.
Diese Funktion modifiziert keine Attribute bei Tags, die via
allowable_tags
erlaubt wurden, dies betrifft auch
style
und onmouseover
Attribute,
die ein böswilliger User verwenden kann, um einen Text zu posten, der
von anderen Usern gesehen werden soll.
Hinweis:
Tagnamen im Eingabe-HTML, die länger als 1023 Bytes sind, werden behandelt als ob sie ungültig seien, unabhängig vom
allowable_tags
Parameter.