htmLawed ist eine 48kB kleine php-Bibliothek, die die Aufbereitung von html/xml in vielfältiger Weise unterstützt.
Ein Bild sagt mehr als 1000 Worte. Der folgende Code
require('htmLawed.php'); $config = array('comment'=>1, 'cdata'=>2, 'safe'=>1, 'tidy'=>-1); $processed = htmLawed($text, $config);
- entfernt Kommentare
- konvertiert
<,>,&
zu Entities - verbietet
embed
,iframe
,object
undscript
-Tags sowie sämtlicheon*
Attribute; URLs mit angebenenem Schema werden ungültig gemacht - komprimiert den generierten HTML-Code
Die Möglichkeiten die Ausgabe zu beeinflussen sind vielfältig. Ein 'Smell' ist m.E. die Benutzung von $_GLOBALS
, allerdings sind alle Variablen über den Präfix hl_
quasi in einem eigenen Namespace, ein weiterer die php4-Kompatibilität…
Die Dokumentation ist ausführlich und das Tool wird, so legt der letzte Release der Version 1.1.10 vom 23. Oktober nahe, aktiv entwickelt.
Mit dem obigen Code wird übrigens folgender Nonsense
<html> <headstyle="margin: 20px;"> <title>htmLawed-Test</title> </head> <body> <p>Ein Test</p> <p><iframesrc="http://meine.boese.seite/huhu/schreckliches/scriptgezeugs.html"width="1"height="1"/></p> <p>Ein Text</p> </body> </html>
in folgendes, sicher einzubettendes html umgewandelt
<p>Ein Test</p> <p></p> <p>Ein Text</p>