Start · Sprachen · PHP · Referenz · bzerror

bzerror

Funktion

Gibt die bzip2-Fehlernummer und die Fehlermeldung einer bzip2-Datei-Ressource als Array zurück.

seit PHP 4.0.4 Kategorie: io

Signatur

bzerror(resource $bz): array

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

Typ
array
Beschreibung
Gibt ein assoziatives Array mit den Schlüsseln 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);
Gelesen: <Inhalt der ersten 1024 Bytes der Datei>

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);
Daten erfolgreich geschrieben.

// 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.