Signatur
Beschreibung
bzerrstr() liest die zuletzt aufgetretene Fehlermeldung eines geöffneten bzip2-Datei-Handles und gibt diese als lesbaren String zurück. Die Funktion ist nützlich, um bei Lese- oder Schreiboperationen auf komprimierten bzip2-Dateien aussagekräftige Fehlermeldungen auszugeben oder zu protokollieren.
In Kombination mit bzerrno() lässt sich sowohl der numerische Fehlercode als auch die entsprechende textuelle Beschreibung ermitteln. Alternativ liefert bzerror() beide Informationen gleichzeitig als assoziatives Array.
Typisch ist der Einsatz direkt nach fehlgeschlagenen bzip2-Dateioperationen wie bzread() oder bzwrite(), um den Grund des Fehlers zu verstehen und entsprechend reagieren zu können.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $bz Pflicht | resource | Ein gültiges bzip2-Datei-Handle, das zuvor mit bzopen() geöffnet wurde. |
Rückgabewert
Beispiele
Fehlermeldung nach einer fehlgeschlagenen bzip2-Operation ausgeben
<?php
$bz = bzopen('/tmp/beispiel.bz2', 'r');
if ($bz === false) {
echo 'Datei konnte nicht geöffnet werden.';
exit;
}
$data = bzread($bz, 1024);
if ($data === false) {
$fehler = bzerrstr($bz);
echo 'Lesefehler: ' . $fehler;
} else {
echo 'Gelesene Daten: ' . $data;
}
bzclose($bz);
Fehlermeldung und Fehlercode kombiniert auswerten
<?php
$bz = bzopen('/tmp/ausgabe.bz2', 'w');
if ($bz === false) {
echo 'Datei konnte nicht zum Schreiben geöffnet werden.';
exit;
}
$ergebnis = bzwrite($bz, 'Testinhalt');
if ($ergebnis === false) {
$fehlercode = bzerrno($bz);
$fehlermeldung = bzerrstr($bz);
echo sprintf('Fehler %d: %s', $fehlercode, $fehlermeldung);
} else {
echo 'Erfolgreich ' . $ergebnis . ' Bytes geschrieben.';
}
bzclose($bz);
// Wichtig · Fallstricke
Hinweis: Die Funktion setzt voraus, dass PHP mit bzip2-Unterstützung kompiliert wurde (d. h. mit der Option --with-bz2). Fehlt diese Unterstützung, steht bzerrstr() nicht zur Verfügung.
Ab PHP 8.0 wird die Verwendung von resource-Typen schrittweise zugunsten von Objekt-Handles abgelöst, jedoch nutzt die bzip2-Erweiterung weiterhin klassische Ressourcen.