RegEx HTML Tags+INHALT entfernen

  • Themenstarter Themenstarter ReggaePanda
  • Beginndatum Beginndatum
Moin zusammen,

Wie wäre es ganz einfach mit strip_tags()? Die Funktion könnte das Problem ohne fehleranfällige reguläre Ausdrücke sofort lösen.

In den Comments stehen noch diverse Ansätze, wie man bestimmte Inhalte behalten kann.
 
Zuletzt bearbeitet:
Reguläre Ausdrücke sind eigentlich nicht fehleranfällig. Dafür aber strip_tags:
php.net hat gesagt.:
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 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.
 
@timestamp

oh, hatte den Modifier s an, deswegen hats nicht funktioniert :|
die löscht sogar blöde <br> tags :) nr1 für mich ... das einfachste ist wohl oft das beste :D

@deepthroat

die Funktioniert auch klasse nur das die nicht richtig escaped war und ich hab noch ein kleines fragezeichen eingefügt.
@<(\S+)([^>]*\/>|.*?<\/\1\s*>)@is

@yaslaw
auch klasse aber ich habs lieber kompackt :)


Also nochmal an alle danke!
 
@timestamp

Zuverlässige HTML-Filterung geht weder mit regulären Ausdrücken noch mit strip_tags(), da HTML dafür (ob man es glaubt oder nicht) zu komplex ist-. Einzige Möglichkeit wirklich sicher HTML zu filtern sind Libraries wie z.B. HTML-Purifier. Falls man aber aus einem String das komplette HTML-Markup rausfiltern will, kann man strip_tags() nehmen, man darf nur keine Whitelist im zweiten Parameter angeben, dann ist es dautlich sicherer als ein Regex, die nie alle Möglichkeiten berücksichtigen kann, wie man HTML durchschleusen kann.
 

Neue Beiträge

Zurück