Start · Sprachen · PHP · Referenz · tidy_get_error_buffer

tidy_get_error_buffer

Funktion

Gibt den Fehler- und Warnungspuffer zurück, der beim Parsen eines HTML/XML-Dokuments mit <code>tidy</code> entstanden ist.

seit PHP 5.0.0 Kategorie: string

Signatur

tidy_get_error_buffer(tidy $tidy): string|false

Beschreibung

tidy_get_error_buffer() liefert alle Warnungen und Fehlermeldungen, die die Tidy-Bibliothek beim Parsen oder Bereinigen eines Dokuments erzeugt hat, als einfachen Zeichenkette zurück. Dies ist nützlich, um nach einem tidy_parse_string()- oder tidy_parse_file()-Aufruf festzustellen, ob und welche Probleme im Dokument gefunden wurden.

Die Funktion ist das prozedurale Pendant zur objektorientierten Eigenschaft tidy::$errorBuffer. Beide greifen auf denselben internen Puffer zu, der nach jedem Parse-Vorgang neu befüllt wird.

Typische Anwendungsfälle sind das Protokollieren von HTML-Fehlern in Qualitätssicherungs-Workflows, das Debuggen von fehlerhaftem Markup oder das automatische Prüfen von benutzergenerierten Inhalten auf Konformität. Der Puffer enthält menschenlesbare Meldungen, die Zeilennummer, Spaltennummer und eine Fehlerbeschreibung enthalten.

Wichtig: Der Fehlerpuffer wird erst nach einem erfolgreichen Parse-Vorgang gefüllt. Wurde noch kein Dokument geparst, gibt die Funktion false zurück.

Parameter

Name Typ Default Beschreibung
$tidy Pflicht tidy Eine tidy-Instanz, die zuvor mit tidy_parse_string() oder tidy_parse_file() erstellt und mit einem Dokument befüllt wurde.

Rückgabewert

Typ
string|false
Beschreibung
Gibt den Fehler- und Warnungspuffer als Zeichenkette zurück, oder false, wenn noch kein Dokument geparst wurde oder kein Fehler aufgetreten ist.

Beispiele

Fehlerpuffer nach dem Parsen eines fehlerhaften HTML-Dokuments ausgeben

<?php
$html = '<html><body><p>Nicht geschlossenes Absatz-Tag<div>Falsch verschachtelt</div></body></html>';

$tidy = tidy_parse_string($html, [], 'UTF8');

$errors = tidy_get_error_buffer($tidy);

if ($errors) {
    echo "Tidy-Fehlerpuffer:\n";
    echo $errors;
} else {
    echo "Keine Fehler gefunden.";
}
Tidy-Fehlerpuffer: lijn 1 kolom 33 - Warning: <p> cannot contain <div>

Objektorientierte Variante und Vergleich mit errorBuffer-Eigenschaft

<?php
$html = '<html><body><b><i>Falsch verschachtelt</b></i></body></html>';

$tidy = new tidy();
$tidy->parseString($html, ['show-warnings' => true], 'UTF8');

// Prozedurale Methode
$buffer1 = tidy_get_error_buffer($tidy);

// OOP-Eigenschaft (äquivalent)
$buffer2 = $tidy->errorBuffer;

echo "Prozedural:\n" . $buffer1 . "\n";
echo "OOP-Eigenschaft:\n" . $buffer2 . "\n";
echo "Identisch: " . ($buffer1 === $buffer2 ? 'Ja' : 'Nein') . "\n";
Prozedural: lijn 1 kolom 37 - Warning: replacing invalid UTF-8 bytes (char. 0x) OOP-Eigenschaft: lijn 1 kolom 37 - Warning: replacing invalid UTF-8 bytes (char. 0x) Identisch: Ja

// Wichtig · Fallstricke

Hinweis zur Konfiguration: Damit Warnungen in den Puffer aufgenommen werden, muss die Tidy-Option show-warnings auf true gesetzt sein (Standard). Nur Fehler (nicht Warnungen) erscheinen, wenn show-warnings deaktiviert ist.

Puffer-Lebensdauer: Der Fehlerpuffer wird bei jedem neuen Aufruf von parseString() oder parseFile() überschrieben. Soll der Puffer langfristig aufbewahrt werden, muss er direkt nach dem Parsen in einer eigenen Variable gespeichert werden.

Verfügbarkeit: Die Tidy-Erweiterung muss beim Kompilieren von PHP aktiviert worden sein (--with-tidy) oder als gemeinsam genutztes Modul geladen werden. extension_loaded('tidy') kann zur Laufzeit geprüft werden.