HTML aus String entfernen (Thema: PHP Beispiele)

Wie in PHP HTML-Code aus einem vorgegebenen String gelöscht werden kann.

In PHP ist die Funktion strip_tags($string, [$allowable_tags]) zum Entfernen von HTML-Code aus Strings gedacht.
Man übergibt der Funktion den zu bearbeitenden String und erhält diesen ohne HTML wieder zurück:
PHP-Code
<?php
	$str = 'Dieser <em>String</em> enthält <strong>HTML</strong>, welches unerwünscht ist.';
	var_dump($str);
	var_dump(strip_tags($str));
?>
Ausgabe
string(79) "Dieser <em>String</em> enthält <strong>HTML</strong>, welches unerwünscht ist."
string(53) "Diese String enthält HTML, welches unerwuenscht ist."

Einzelne Tags können erlaubt werden, indem man sie unter $allowable_tags hinzufügt (der zweite Parameter der Funktion).
$allowable_tags ist ein String, die zu erlaubenden HTML-Tags werden — inklusive der spitzen Klammern — im String eingetragen.
Ein Trennzeichen (z.B. Komma) wird nicht verwendet.
PHP-Code
<?php
	$str = 'Dieser <em>String</em> enthält <strong>HTML</strong>, welches unerwünscht ist.';
	var_dump(strip_tags($str, '<a><em>'));
?>
Ausgabe
string(62) "Dieser <em>String</em> enthält HTML, welches unerwünscht ist."

Vom Hinzufügen von erlaubten Tags ist grundsätzlich abzuraten, da auch sämtliche HTML-Attribute dieser erlaubten Tags unverändert übernommen werden.
Darunter können zum Beispiel das style-Attribut sein oder auch ein onclick-Attribut.
So kann ein Angreifer das Design der Seite negativ beeinflussen oder gar JavaScript-Code einschleusen.
PHP-Code
<?php
	$str = 'Ein <em onmouseover="alert(\'Angriff!\');" style="font-size:20em;">Beispielcode</em>.';
	var_dump(strip_tags($str2, '<em>'));
?>
Ausgabe
string(83) "Ein <em onmouseover="alert('Angriff!');" style="font-size:20em;">Beispielcode</em>."
Um unsere Webseite für Sie optimal zu gestalten und fortlaufend verbessern zu können, verwenden wir Cookies. Durch die weitere Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen zu Cookies erhalten Sie in unserer Datenschutzerklärung. OK