Start · Sprachen · PHP · Referenz · bzerrstr

bzerrstr

Funktion

Gibt die Fehlermeldung des letzten bzip2-Fehlers als Zeichenkette zurück.

seit PHP 4.0.4 Kategorie: io

Signatur

bzerrstr(resource $bz): string

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

Typ
string
Beschreibung
Gibt die Fehlermeldung des letzten aufgetretenen bzip2-Fehlers als Zeichenkette zurück. Wenn kein Fehler vorliegt, wird ein leerer String zurückgegeben.

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);
Lesefehler: (oder die entsprechende bzip2-Fehlermeldung)

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);
Erfolgreich 10 Bytes geschrieben.

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