Wenn man es mit Benutzern zu tun hat, dann hat man es zwangsläufig mit einer Fehlerquelle zu tun. Erlaubt man beispielsweise bei einer Kommentarfunktion html Tags wie <strong>,<em> oder <u> so kann schnell falsch verschachtelter Code auftauchen. Fehler wie nicht geschlossene Tags oder fälschlicherweise geschlossene Tags sind an der Tagesordnung und können z.B. bei der Verarbeitung mit Ajax zu Skriptabbrüchen führen (ist mir schon passiert).
Fehler Beispiel: “<strong>Fetter</b> Text”
Anderes Szenario: Man möchte von einem HTML formatierten Text eine Zusammenfassung haben, meinetwegen die ersten 250 Zeichen. Hier kann es passieren, wenn man einfach mit substr kürzt, einen HTML Tag zerschneidet oder man close Tags die später im Text folgen einfach wegschneidet.
Fehler Beispiel: “<u>Text Text Text <br”
Bisher habe ich für diese Fälle selbstgeschneiderte Close Tags Routinen genutzt.
Diese haben aber mitunter nicht alle Eventualitäten abgedeckt und so habe ich mich auf die Suche nach einer fertigen Lösung gemacht:
Beinahe zwangsläufig stößt man auf HTML Tidy einer optionalen Erweiterung für PHP 5. Diese würde meine Zwecke vollständig erfüllen, jedoch ist sie längst nicht auf jedem Webserver vorhanden und damit keine allgemein gültige Lösung. Andere Varianten werden direkt über die Kommandozeile aufgerufen, auch das hilft wenig.
Ich habe lange gesucht, aber dann habe ich eine PHP Klasse namens htmLawed gefunden. Diese .php Datei muss einfach included werden, danach lässt sich jeder inkorrekte HTML Code mit dem einfachen Aufruf reparieren:
$neuercode = htmLawed($altercode);
Ich hoffe hiermit ein paar Leute die langwierige Suche für dieses alltägliche Problem zu verkürzen!
Hier ist die Klasse: htmLawed.























