Signatur
Beschreibung
tidy_get_head() ist eine prozedurale Hilfsfunktion der Tidy-Erweiterung und ermöglicht den direkten Zugriff auf den <head>-Knoten eines geparsten HTML-Dokuments, ohne den gesamten Baum von der Wurzel aus traversieren zu müssen.
Der zurückgegebene tidyNode repräsentiert den <head>-Bereich des Dokuments mitsamt allen Kindknoten wie <title>, <meta>, <link> oder <style>. Dies ist besonders nützlich, wenn Meta-Informationen, Seitentitel oder eingebundene Ressourcen eines HTML-Dokuments programmatisch ausgelesen oder analysiert werden sollen.
Die Funktion ist das prozedurale Äquivalent zur objektorientierten Methode tidy::head(). Beide geben denselben Knoten zurück. Das übergebene tidy-Objekt muss bereits ein geparses Dokument enthalten, d. h. tidy_parse_string(), tidy_parse_file() oder eine entsprechende OOP-Variante muss zuvor aufgerufen worden sein.
Gibt das Dokument keinen <head>-Bereich zurück oder tritt ein Fehler auf, liefert die Funktion false.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $tidy Pflicht | tidy | Ein gültiges tidy-Objekt, das ein bereits gepartes HTML- oder XHTML-Dokument enthält. |
Rückgabewert
tidyNode-Objekt zurück, das den <head>-Knoten des Parsebaums repräsentiert, oder false im Fehlerfall.Beispiele
Head-Knoten eines HTML-Dokuments auslesen
<?php
$html = '<!DOCTYPE html>
<html>
<head>
<title>Beispielseite</title>
<meta charset="UTF-8">
</head>
<body>
<p>Hallo Welt</p>
</body>
</html>';
$tidy = tidy_parse_string($html, [], 'UTF8');
$head = tidy_get_head($tidy);
if ($head !== false) {
echo "Name des Knotens: " . $head->name . "\n";
echo "Anzahl der Kindknoten: " . count($head->child) . "\n";
} else {
echo "Kein Head-Knoten gefunden.\n";
}
Seitentitel aus dem Head-Bereich extrahieren
<?php
$html = '<html><head><title>Meine PHP-Seite</title></head><body><p>Inhalt</p></body></html>';
$tidy = new tidy();
$tidy->parseString($html, [], 'UTF8');
// Prozeduraler Aufruf mit dem tidy-Objekt
$head = tidy_get_head($tidy);
if ($head && !empty($head->child)) {
foreach ($head->child as $child) {
if ($child->name === 'title' && !empty($child->child)) {
echo "Seitentitel: " . $child->child[0]->value . "\n";
}
}
}
// Wichtig · Fallstricke
Die Tidy-Erweiterung muss in der PHP-Installation aktiviert sein (Kompilierung mit --with-tidy oder entsprechendes Paket). Ohne diese Erweiterung ist tidy_get_head() nicht verfügbar.
Das zurückgegebene tidyNode-Objekt ist read-only. Änderungen am Parsebaum über dieses Objekt sind nicht möglich. Für Manipulationen sollte der bereinigte HTML-String über tidy::value oder tidy::cleanRepair() verwendet und anschließend neu geparst werden.
Objektorientiertes Äquivalent: $tidy->head().