Signatur
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
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);
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);
// 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.