Start · Sprachen · PHP · Referenz · bzerrno

bzerrno

Funktion

Gibt die Fehlernummer des zuletzt aufgetretenen bzip2-Fehlers für ein geöffnetes bzip2-Handle zurück.

seit PHP 4.0.4 Kategorie: io

Signatur

bzerrno(resource $bz): int

Beschreibung

bzerrno() liefert den numerischen Fehlercode, der dem zuletzt aufgetretenen Fehler im angegebenen bzip2-Datei-Handle entspricht. Die Funktion wird in Verbindung mit bzopen() geöffneten Handles verwendet, um nach lese- oder schreibseitigen Fehlern zu prüfen.

Im Normalfall gibt bzerrno() den Wert 0 zurück, was bedeutet, dass kein Fehler vorliegt. Bei einem Fehler entspricht der zurückgegebene Integer-Wert dem internen libbzip2-Fehlercode. Um sowohl den Fehlercode als auch die dazugehörige Fehlermeldung in einem Schritt zu erhalten, kann alternativ bzerror() verwendet werden.

Die Funktion ist besonders nützlich, wenn nach einem fehlgeschlagenen bzread()- oder bzwrite()-Aufruf geprüft werden soll, ob ein Fehler aufgetreten ist, um darauf reagieren zu können – etwa durch Schließen des Handles und Ausgabe einer Fehlermeldung.

Parameter

Name Typ Default Beschreibung
$bz Pflicht resource Ein gültiges bzip2-Datei-Handle, das zuvor mit bzopen() geöffnet wurde.

Rückgabewert

Typ
int
Beschreibung
Gibt den numerischen Fehlercode des zuletzt aufgetretenen Fehlers zurück. 0 bedeutet, dass kein Fehler vorliegt.

Beispiele

Einfache Fehlerprüfung nach bzread()

<?php
$bz = bzopen('/tmp/example.bz2', 'r');
if (!$bz) {
    die('Datei konnte nicht geöffnet werden.');
}

$data = bzread($bz, 1024);

$errno = bzerrno($bz);
if ($errno !== 0) {
    echo 'bzip2-Fehler aufgetreten, Code: ' . $errno . PHP_EOL;
} else {
    echo 'Gelesen: ' . strlen($data) . ' Bytes' . PHP_EOL;
}

bzclose($bz);
Gelesen: 1024 Bytes

Kombination mit bzerror() für vollständige Fehlerinformation

<?php
$bz = bzopen('/tmp/example.bz2', 'r');
if (!$bz) {
    die('Datei konnte nicht geöffnet werden.');
}

bzread($bz, 512);

// Nur Fehlernummer abrufen
$errno = bzerrno($bz);

// Für vollständige Fehlerinformation bzerror() verwenden
$error = bzerror($bz);

if ($errno !== 0) {
    echo 'Fehlercode: ' . $error['errno'] . PHP_EOL;
    echo 'Fehlermeldung: ' . $error['str'] . PHP_EOL;
} else {
    echo 'Kein Fehler aufgetreten.' . PHP_EOL;
}

bzclose($bz);
Kein Fehler aufgetreten.

// Wichtig · Fallstricke

Hinweis: bzerrno() gibt nur dann einen sinnvollen Wert zurück, wenn das übergebene Handle ein gültiges, mit bzopen() geöffnetes bzip2-Handle ist. Das Übergeben eines ungültigen Handles führt zu einem PHP-Fehler.

Für eine vollständige Fehlerdiagnose (Fehlercode und -text) empfiehlt sich die Verwendung von bzerror(), das ein assoziatives Array mit den Schlüsseln errno und str zurückgibt.