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>."

Kommentare (0)

Von neu nach alt