strip_tags

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

strip_tagsEntfernt HTML- und PHP-Tags aus einem String

Beschreibung

strip_tags(string$string, array|string|null$allowed_tags = null): string

Diese Funktion versucht, einen String zurückzugeben, der die um alle NULL-Bytes, HTML- und PHP-Tags reduzierte Version von string darstellt. Sie verwendet die gleiche Engine zum Entfernen der Tags wie fgetss().

Parameter-Liste

string

Die Eingabezeichenkette.

allowed_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 allowed_tags verändert werden.

Hinweis:

Da selbstschließende XHTML-Tags ignoriert werden, sollten nur nicht-selbstschließende Tags in allowed_tags verwendet werden. Um beispielsweise sowohl <br;> als auch <br/> zu erlauben, sollte folgendes verwendet werden:

<?php
strip_tags
($input, '<br>');
?>

Rückgabewerte

Gibt die reduzierte Zeichenkette zurück.

Changelog

VersionBeschreibung
8.0.0allowed_tags ist jetzt nullable (akzeptiert den NULL-Wert).
7.4.0 Der Parameter allowed_tags akzeptiert nun alternativ ein Array.

Beispiele

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>

Anmerkungen

Warnung

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.

Warnung

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.

Warnung

Diese Funktion modifiziert keine Attribute bei Tags, die via allowed_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 allowed_tags-Parameter.

Siehe auch

To Top