Signatur
Beschreibung
bzerror() liefert Informationen über den zuletzt aufgetretenen Fehler einer geöffneten bzip2-Datei-Ressource. Das Ergebnis ist ein assoziatives Array mit zwei Schlüsseln: errno enthält die numerische Fehlernummer und errstr enthält die dazugehörige lesbare Fehlermeldung als Zeichenkette.
Die Funktion ist nützlich, um nach bzip2-Operationen wie bzread() oder bzwrite() gezielt auf Fehler zu prüfen und aussagekräftige Fehlermeldungen auszugeben oder zu protokollieren. Im Fehlerfall weicht die zurückgegebene Fehlernummer von 0 ab.
Typische Einsatzszenarien sind robuste Fehlerbehandlungsroutinen bei der Verarbeitung komprimierter bzip2-Dateien, bei denen sichergestellt werden soll, dass Lese- oder Schreiboperationen erfolgreich abgeschlossen wurden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $bz Pflicht | resource | Eine gültige bzip2-Datei-Ressource, die zuvor mit bzopen() geöffnet wurde. |
Rückgabewert
errno (int, die Fehlernummer) und errstr (string, die Fehlermeldung) zurück. Bei fehlerfreiem Betrieb ist errno gleich 0 und errstr ist eine leere Zeichenkette.Beispiele
Fehlerprüfung nach dem Öffnen und Lesen einer bzip2-Datei
<?php
$bz = bzopen('/pfad/zur/datei.bz2', 'r');
if ($bz === false) {
echo 'Datei konnte nicht geöffnet werden.';
exit;
}
$inhalt = bzread($bz, 1024);
$fehler = bzerror($bz);
if ($fehler['errno'] !== 0) {
echo 'bzip2-Fehler ' . $fehler['errno'] . ': ' . $fehler['errstr'];
} else {
echo 'Gelesen: ' . $inhalt;
}
bzclose($bz);
Fehlerbehandlung beim Schreiben in eine bzip2-Datei
<?php
$bz = bzopen('/tmp/ausgabe.bz2', 'w');
if ($bz === false) {
echo 'Datei konnte nicht erstellt werden.';
exit;
}
bzwrite($bz, 'Testinhalt für bzip2-Komprimierung');
$fehler = bzerror($bz);
if ($fehler['errno'] !== 0) {
echo 'Fehler beim Schreiben — Code: ' . $fehler['errno']
. ', Meldung: ' . $fehler['errstr'];
} else {
echo 'Daten erfolgreich geschrieben.';
}
bzclose($bz);
// Wichtig · Fallstricke
Die Fehlernummern entsprechen den internen bzip2-Bibliotheks-Fehlercodes. Ein Wert von 0 für errno bedeutet, dass kein Fehler vorliegt. Negative Werte können auf schwerwiegende Bibliotheksfehler hinweisen.
Beachte, dass bzerror() nur für bzip2-Ressourcen geeignet ist, die mit bzopen() erstellt wurden. Bei ungültigen Ressourcen wird ein PHP-Fehler ausgelöst. Ab PHP 8.0 sind viele I/O-Ressourcen durch Objekte ersetzt worden; prüfe daher bei Migrationen auf neuere PHP-Versionen, ob bzip2-Funktionen noch wie erwartet funktionieren.