PHP DomDocument Tipps

Die DomDocument Klasse ist das Tool, wenn es darum geht, HTML-Markup in PHP zu parsen und zu bearbeiten.

Doctype, HTML, HEAD, BODY Tags entfernen

Wenn man mit DomDocument::loadHTML() Markup in die Klasse lädt, werden automatisch die ganzen Standard Tags, die ein komplette HTML Dokument voraussetzt, hinzugefügt. Die stören allerdings nur, wenn man den HTML Code dann wieder in eine HTML Seite einfügen will.

Anstatt das ganze dann umständlich mit preg_replace oder ähnlichem zu entfernen, kann man diesen Trick anwenden, der die Tags von vorneherein nicht hinzufügt.

$doc = new DOMDocument();
$doc->loadHTML($html, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);

DOMDocument UTF-8

Standardmässig interpretiert DOMDocument das HTML als ISO-8859-1. Wenn der HTML Code aber UTF-8 ist, kommt am Ende statt den Sonderzeichen wie Umlauten etc. Kauderwelsch heraus. Dieser Trick hilft:

$dom->loadHTML('<?xml encoding="utf-8" ?>' . $html);