23.122011

htmLawed – kleine aber feine HTMLTidy Alternative

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 und script-Tags sowie sämtliche on* 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>