Signatur
Beschreibung
tidy_parse_file() liest den Inhalt einer lokalen Datei oder einer URI und übergibt diesen an die Tidy-Bibliothek zur Analyse. Das Ergebnis ist ein tidy-Objekt, das anschließend für Diagnose, Bereinigung oder Konvertierung des Markups verwendet werden kann.
Die Funktion ist besonders nützlich, wenn man HTML-Dokumente aus dem Dateisystem oder von entfernten URLs validieren oder bereinigen möchte, ohne den Inhalt zunächst manuell einlesen zu müssen. Sie entspricht der prozeduralen Variante der Methode tidy::parseFile().
Über den Parameter $config lassen sich alle Tidy-Konfigurationsoptionen als assoziatives Array oder als Pfad zu einer Konfigurationsdatei übergeben. Mit $encoding kann die Zeichenkodierung des Dokuments explizit angegeben werden. Gültige Werte sind z. B. utf8, latin1 oder ascii.
Nach dem Parsen sollte man mit tidy_get_error_buffer() oder tidy_get_output() auf Fehler und das bereinigte Ergebnis zugreifen. Für die direkte Verarbeitung von Strings im Speicher empfiehlt sich stattdessen tidy_parse_string().
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $filename Pflicht | string | Pfad zu einer lokalen Datei oder eine URI, deren Inhalt geparst werden soll. | |
| $config | array|string|null | null | Tidy-Konfigurationsoptionen als assoziatives Array oder als Pfad zu einer Tidy-Konfigurationsdatei. Wird null übergeben, werden Standardwerte verwendet. |
| $encoding | string|null | null | Zeichenkodierung des Eingabedokuments, z. B. utf8, latin1 oder ascii. Bei null wird die Standardkodierung verwendet. |
| $useIncludePath | bool | false | Wenn true, wird die Datei auch im PHP-Includepfad (include_path) gesucht. |
Rückgabewert
tidy-Objekt zurück, das das geparste Dokument repräsentiert. Bei einem Fehler (z. B. Datei nicht lesbar) wird false zurückgegeben.Beispiele
Lokale HTML-Datei parsen und bereinigtes Markup ausgeben
<?php
// Voraussetzung: PHP-Erweiterung 'tidy' ist aktiviert
$config = [
'indent' => true,
'output-xhtml' => true,
'wrap' => 120,
];
$tidy = tidy_parse_file('seite.html', $config, 'utf8');
if ($tidy === false) {
echo 'Datei konnte nicht geparst werden.';
} else {
tidy_clean_repair($tidy);
echo tidy_get_output($tidy);
}
Fehler und Warnungen nach dem Parsen ausgeben
<?php
$tidy = tidy_parse_file('defektes-dokument.html', null, 'utf8');
if ($tidy !== false) {
tidy_clean_repair($tidy);
$fehler = tidy_get_error_buffer($tidy);
if ($fehler) {
echo "Tidy-Meldungen:\n" . $fehler;
} else {
echo "Keine Fehler gefunden.";
}
} else {
echo "Datei konnte nicht gelesen werden.";
}
// Wichtig · Fallstricke
Sicherheitshinweis: Wird eine extern kontrollierte URI (z. B. aus Benutzereingaben) als $filename übergeben, besteht das Risiko von Server-Side Request Forgery (SSRF). Validiere und beschränke erlaubte Pfade und URIs immer sorgfältig.
Die Tidy-Erweiterung muss in PHP kompiliert oder als gemeinsame Bibliothek geladen sein (extension=tidy in der php.ini). Ist sie nicht verfügbar, löst der Aufruf einen fatalen Fehler aus.
Ab PHP 8.0 kann der erste Parameter nicht mehr null sein; zuvor war dies teilweise möglich. Der Rückgabewert false sollte stets mit === false geprüft werden, da ein tidy-Objekt in booleschen Kontexten als true gilt.