Start · Sprachen · PHP · Referenz · tidy_warning_count

tidy_warning_count

Funktion

Gibt die Anzahl der Warnungen zurück, die Tidy beim Parsen oder Bereinigen eines HTML/XHTML-Dokuments erzeugt hat.

seit PHP 5.0.0 Kategorie: string

Signatur

tidy_warning_count(tidy $tidy): int

Beschreibung

tidy_warning_count() liefert die Gesamtzahl der Warnungen, die der Tidy-Parser für ein gegebenes tidy-Objekt registriert hat. Warnungen sind weniger schwerwiegend als Fehler – sie deuten auf potenziell problematische, aber nicht unbedingt ungültige Markup-Konstrukte hin.

Die Funktion ist nützlich, um nach einem Aufruf von tidy_parse_string() oder tidy_parse_file() schnell zu prüfen, ob das Dokument sauber ist, ohne den vollständigen Diagnosebericht (tidy_get_output()) auswerten zu müssen. Ist der Rückgabewert größer als 0, lohnt sich ein Blick auf tidy_get_error_buffer() oder tidy::getWarnings(), um die konkreten Warnmeldungen zu lesen.

Die prozedurale Funktion tidy_warning_count($tidy) ist funktional identisch mit der objektorientierten Eigenschaft $tidy->warningCount. Beide greifen auf dieselben intern gespeicherten Diagnosedaten zu.

Parameter

Name Typ Default Beschreibung
$tidy Pflicht tidy Ein gültiges tidy-Objekt, das zuvor mit tidy_parse_string() oder tidy_parse_file() befüllt wurde.

Rückgabewert

Typ
int
Beschreibung
Gibt die Anzahl der Warnungen als nicht-negative ganze Zahl zurück. 0 bedeutet, dass keine Warnungen aufgetreten sind.

Beispiele

Warnungsanzahl nach dem Parsen eines HTML-Strings prüfen

<?php
$html = '<html><body><p>Unclosed paragraph<p>Second paragraph</body></html>';

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

$warnings = tidy_warning_count($tidy);
$errors   = tidy_error_count($tidy);

echo "Warnungen: $warnings\n";
echo "Fehler:    $errors\n";

if ($warnings > 0) {
    echo "Tidy-Diagnosebericht:\n";
    echo tidy_get_error_buffer($tidy) . "\n";
}
Warnungen: 1 Fehler: 0 Tidy-Diagnosebericht: line 1 column 22 - Warning: trimming empty <p>

Objektorientierter Vergleich mit warningCount

<?php
$html = '<!DOCTYPE html><html><head><title>Test</title></head>
<body><font color="red">Veraltetes Element</font></body></html>';

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

// Prozedurale Variante
$countProc = tidy_warning_count($tidy);

// OOP-Variante
$countOop = $tidy->warningCount;

echo "Prozedural: $countProc\n";
echo "OOP:        $countOop\n";
echo ($countProc === $countOop ? 'Ergebnisse sind identisch.' : 'Unterschied!') . "\n";
Prozedural: 1 OOP: 1 Ergebnisse sind identisch.

// Wichtig · Fallstricke

Erweiterung erforderlich: Die tidy-Erweiterung ist nicht in jeder PHP-Standardinstallation aktiv. Sie muss beim Kompilieren eingebunden (--with-tidy) oder als gemeinsam genutztes Modul (extension=tidy) in der php.ini aktiviert werden.

Reihenfolge beachten: tidy_warning_count() liefert nur dann aussagekräftige Werte, wenn das Dokument tatsächlich geparst wurde. Ein reines new tidy() ohne anschließendes Parsen gibt 0 zurück, was kein Zeichen für ein fehlerfreies Dokument ist.