Start · Sprachen · PHP · Referenz · tidy_get_head

tidy_get_head

Funktion

Gibt ein <code>tidyNode</code>-Objekt ab dem <code>&lt;head&gt;</code>-Tag des Tidy-Parsebaums zurück.

seit PHP 5.0.0 Kategorie: string

Signatur

tidy_get_head(tidy $tidy): tidyNode|false

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

Typ
tidyNode|false
Beschreibung
Gibt ein 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";
}
Name des Knotens: head Anzahl der Kindknoten: 2

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";
        }
    }
}
Seitentitel: Meine PHP-Seite

// 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().