Start · Sprachen · PHP · Referenz · tidy_get_status

tidy_get_status

Funktion

Gibt den Status des angegebenen Tidy-Dokuments zurück (0 = kein Fehler, 1 = Warnungen, 2 = Fehler).

seit PHP 5.0.0 Kategorie: string

Signatur

tidy_get_status(tidy $tidy): int

Beschreibung

tidy_get_status() liefert nach dem Parsen oder Bereinigen eines HTML/XHTML-Dokuments mit der Tidy-Bibliothek einen numerischen Statuscode, der anzeigt, ob dabei Probleme aufgetreten sind. Der Rückgabewert 0 bedeutet, dass das Dokument ohne Warnungen oder Fehler verarbeitet wurde. 1 zeigt an, dass mindestens eine Warnung erzeugt wurde, und 2 bedeutet, dass ein oder mehrere Fehler vorlagen.

Die Funktion ist besonders nützlich, um nach dem Parsen oder Reparieren von HTML-Dokumenten schnell zu prüfen, ob das Dokument valide ist, bevor man den bereinigten Inhalt weiterverwendet oder ausgibt. Sie kann als prozeduraler Aufruf (tidy_get_status($tidy)) oder als Methode eines tidy-Objekts ($tidy->getStatus()) verwendet werden.

Für detailliertere Informationen zu den aufgetretenen Problemen kann man ergänzend tidy_get_error_buffer() verwenden, das alle Fehlermeldungen als String zurückgibt.

Parameter

Name Typ Default Beschreibung
$tidy Pflicht tidy Das tidy-Objekt, dessen Status abgefragt werden soll. Es wird mit tidy_parse_string(), tidy_parse_file() oder dem tidy-Konstruktor erzeugt.

Rückgabewert

Typ
int
Beschreibung
Gibt 0 zurück, wenn keine Fehler oder Warnungen aufgetreten sind. 1 bei Warnungen und 2 bei Fehlern im verarbeiteten Dokument.

Beispiele

Statusprüfung nach dem Parsen eines HTML-Strings

<?php
$html = '<html><body><p>Beispiel<br>Text ohne schließendes Tag</body></html>';

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

if ($status === 0) {
    echo "Dokument ist fehlerfrei.\n";
} elseif ($status === 1) {
    echo "Dokument enthält Warnungen:\n";
    echo tidy_get_error_buffer($tidy);
} else {
    echo "Dokument enthält Fehler:\n";
    echo tidy_get_error_buffer($tidy);
}
Dokument enthält Warnungen: line 1 column 1 - Warning: missing <!DOCTYPE> declaration ...

OOP-Stil: getStatus() als Methode

<?php
$html = '<!DOCTYPE html><html><head><title>Test</title></head><body><p>Gültiges Dokument</p></body></html>';

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

$status = $tidy->getStatus();

switch ($status) {
    case 0:
        echo "Alles in Ordnung – kein Fehler.\n";
        break;
    case 1:
        echo "Es liegen Warnungen vor.\n";
        break;
    case 2:
        echo "Es liegen Fehler vor.\n";
        break;
}
Alles in Ordnung – kein Fehler.

// Wichtig · Fallstricke

Hinweis: Die Funktion setzt voraus, dass die tidy-Erweiterung in PHP kompiliert oder als Erweiterung geladen ist. Auf manchen Systemen muss extension=tidy in der php.ini aktiviert werden.

Der Statuscode bezieht sich immer auf die zuletzt ausgeführte Parse- oder Repair-Operation. Ein Aufruf von cleanRepair() kann den Status verändern, da Tidy das Dokument dabei erneut analysiert.