Signatur
Beschreibung
tidy_get_html() traversiert den internen Parsebaum eines verarbeiteten Tidy-Dokuments und liefert den Knoten zurück, der dem <html>-Element entspricht. Damit erhält man direkten Zugriff auf das eigentliche Dokument-Root-Element, ohne erst den vollständigen Baum von der Dokumentwurzel aus durchlaufen zu müssen.
Die Funktion ist nützlich, wenn man gezielt die Kindknoten des <html>-Elements — also <head> und <body> — untersuchen oder manipulieren möchte. Das zurückgegebene tidyNode-Objekt bietet Eigenschaften wie child, name, value und type für die weitere Navigation im Baum.
Die Funktion ist prozedural und entspricht der objektorientierten Methode tidy::htmlNode(). Beide sind äquivalent; welche Variante man nutzt, ist eine Stilfrage. Die PHP-Tidy-Erweiterung muss installiert und aktiviert sein (üblicherweise über --with-tidy beim Build oder als PECL-Paket).
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $tidy Pflicht | tidy | Ein zuvor erzeugtes und initialisiertes tidy-Objekt, dessen Inhalt bereits geparst wurde (z. B. per tidy_parse_string() oder tidy_parse_file()). |
Rückgabewert
tidyNode-Objekt des <html>-Elements zurück, oder false, wenn kein gültiger Parsebaum vorhanden ist oder das Element nicht gefunden werden konnte.Beispiele
HTML-Root-Knoten ausgeben und Kindknoten auflisten
<?php
$html = '<!DOCTYPE html><html><head><title>Test</title></head><body><p>Hallo Welt</p></body></html>';
$tidy = tidy_parse_string($html, [], 'UTF8');
tidy_clean_repair($tidy);
$htmlNode = tidy_get_html($tidy);
if ($htmlNode !== false) {
echo 'HTML-Knoten: ' . $htmlNode->name . PHP_EOL;
if (!empty($htmlNode->child)) {
foreach ($htmlNode->child as $child) {
echo 'Kind-Knoten: ' . $child->name . PHP_EOL;
}
}
} else {
echo 'Kein HTML-Knoten gefunden.';
}
Objektorientierte Variante mit tidy::htmlNode()
<?php
$html = '<html><head><title>OO-Beispiel</title></head><body><h1>Überschrift</h1></body></html>';
$tidy = new tidy();
$tidy->parseString($html, [], 'UTF8');
$tidy->cleanRepair();
// Äquivalent zu tidy_get_html($tidy)
$htmlNode = $tidy->htmlNode();
if ($htmlNode !== false) {
echo 'Knoten-Name: ' . $htmlNode->name . PHP_EOL;
echo 'Hat Kinder: ' . (empty($htmlNode->child) ? 'Nein' : 'Ja') . PHP_EOL;
}
// Wichtig · Fallstricke
Erweiterung erforderlich: Die Tidy-Erweiterung muss in PHP kompiliert oder als Modul geladen sein. Fehlt sie, steht weder tidy_get_html() noch die Klasse tidy zur Verfügung.
Parsebaum erst nach dem Parsen verfügbar: Die Funktion liefert nur dann ein sinnvolles Ergebnis, wenn das Dokument vorher vollständig geparst und ggf. mit tidy_clean_repair() bereinigt wurde. Andernfalls kann false zurückgegeben werden.
OO-Äquivalent: tidy::htmlNode() ist identisch in Verhalten und Rückgabewert — die Wahl zwischen prozeduralem und objektorientiertem Stil ist rein konventionell.