PHP: Alle HTML-Tags aus String entfernen
Tutorial von Stefan Trost | Letztes Update am 25.12.2022 | Erstellt am 05.05.2014
Manchmal ist es notwendig, alle HTML-Tags und Formatierungen aus einem Text zu entfernen, also aus einem formatierten HTML Dokument den unformatierten Plain Text zu extrahieren.
In diesen Tutorial möchte ich euch zeigen, wie ihr dies bewerkstelligen könnt. Wir nutzen dafür die PHP-Funktion strip-tags().
Alle Formatierungen entfernen
Schauen wir uns dazu ein Beispiel an.
$txt = "<p>Dies ist ein <b>Text</b>.</p>"; $txt = strip_tags($txt); // Dies ist ein Text.
In der Variable $txt haben wir einen String mit einigen HTML Formatierungen gespeichert. Nachdem wir strip_tags() auf diesen Text angewendet haben, sind alle Formatierungen verschwunden.
HTML-Kommentare entfernen
Übrigens entfernt strip_tags() auch HTML-Kommentare, die sich möglicherweise in dem übergebenen String befinden.
$txt = "<p>AB<!-- Kommentar -->CD</p>"; $txt = strip_tags($txt); // ABCD
Wie man in diesem Beispiel sieht, bleibt lediglich "ABCD" vorhanden.
Einige Formatierungen behalten
Der zweite Parameter von strip_tags() ist optional. Mit diesem Parameter können wir eine Auswahl von HTML-Tags übergeben, die nicht entfernt werden sollen.
$txt = "<p>Dies ist ein <b>Text</b>.</p>"; $txt = strip_tags($txt,'<p><h1>'); // <p>Dies ist ein Text.</p>
In diesem Beispiel möchten wir Absätze (<p>) und Überschriften (<h1>) behalten, der Rest soll aussortiert werden. Demnach wird aus unserem String nur der <b> Tag gelöscht.
Sicherheitswarnung
Zuletzt möchte ich noch eine kleine Sicherheitswarnung zu strip_tags() aussprechen. Diese Funktion kann man nicht ohne weiteres dazu nutzen, einen Nutzereingabe "sicher" zu machen. Erlaubt man zum Beispiel den <p>-Tag und jemand schreibt etwas wie <p onmouseover="bösercode">, wird dies nicht von strip_tags() entfernt. Generell entfernt strip_tags() keine Attribute von erlaubten HTML-Tags.
Des weiteren kann es zu Problemen kommen, wenn man diese Funktion nicht validieren oder unvollständigen HTML Code übergibt. Unter Umständen kann dies dazu führen, dass mehr vom Text gelöscht wird, als beabsichtigt.
Einige weitere Informationen zu diesem Thema findet man in den Antworten zu der Frage nach Möglichkeiten, nur bestimmten HTML Code zu erlauben.
Über den Autor
Software von Stefan Trost finden Sie auf sttmedia.de. Benötigen Sie eine individuelle Software nach Ihren eigenen Wünschen? Schreiben Sie uns: sttmedia.de/kontakt
Profil anzeigen
Ähnliche Themen
PHP: Strings mit Ctype-Funktionen auf Zeichenklassen überprüfen
Artikel | 0 Kommentare
PHP: Beliebige Zeichen am Anfang und Ende eines Strings entfernen
Tutorial | 0 Kommentare
Mehrere Texte gleichzeitig ersetzen
Tutorial | 0 Kommentare
PHP: Nur bestimmte Buchstaben, Zahlen und Zeichen in einem String zulassen
Tipp | 10 Kommentare
jQuery: HTML5 Canvas mit Ajax an Server senden
Tutorial | 0 Kommentare
Delphi/Lazarus: Aktuelles Datum und Uhrzeit ausgeben
Tipp | 0 Kommentare
PHP: strip_tags soll mit Leerzeichen ersetzen
Frage | 2 Antworten
Wichtiger Hinweis
Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.
Jetzt mitmachen
Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.