Signatur
Beschreibung
bzflush() ist eine Funktion der bzip2-Erweiterung und soll – analog zu fflush() – alle noch im internen Puffer befindlichen Daten einer geöffneten bzip2-komprimierten Datei auf das Speichermedium schreiben.
In der aktuellen PHP-Implementierung führt bzflush() jedoch keine Aktion aus und gibt lediglich true zurück. Die Funktion existiert aus Kompatibilitätsgründen und für etwaige zukünftige Implementierungen.
Ein echter Flush-Effekt wird erst durch bzclose() erzielt, das den bzip2-Stream ordnungsgemäß abschließt und alle verbleibenden Daten schreibt. Wer sicher sein will, dass Daten vollständig auf die Festplatte geschrieben wurden, sollte daher immer bzclose() verwenden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $bz Pflicht | resource | Ein gültiges bzip2-Dateiressourcen-Handle, das zuvor mit bzopen() geöffnet wurde. |
Rückgabewert
true bei Erfolg und false bei einem Fehler zurück. Da die Funktion intern nichts tut, ist der Rückgabewert in der Praxis immer true, solange ein gültiges Handle übergeben wird.Beispiele
Grundlegende Verwendung von bzflush
<?php
$bz = bzopen('/tmp/test.bz2', 'w');
if ($bz === false) {
die('Datei konnte nicht geöffnet werden.');
}
bzwrite($bz, 'Hallo, das ist ein bzip2-komprimierter Text.');
// bzflush tut hier nichts – gibt aber true zurück
$result = bzflush($bz);
var_dump($result); // bool(true)
// Erst bzclose() schreibt die Daten tatsächlich
bzclose($bz);
bzflush im Vergleich zu bzclose
<?php
$bz = bzopen('/tmp/beispiel.bz2', 'w');
if ($bz === false) {
die('Fehler beim Öffnen.');
}
for ($i = 1; $i <= 5; $i++) {
bzwrite($bz, "Zeile $i\n");
// bzflush hat keinen realen Effekt
bzflush($bz);
}
// Daten werden erst hier wirklich geschrieben und der Stream geschlossen
bzclose($bz);
echo 'Datei wurde erfolgreich erstellt und geschlossen.';
// Wichtig · Fallstricke
Achtung: bzflush() hat in der aktuellen PHP-Implementierung keinen realen Effekt. Verlasst euch nicht auf diese Funktion, um Daten sicher auf die Festplatte zu schreiben. Verwendet stattdessen bzclose(), um den Stream ordnungsgemäß zu beenden und alle Puffer zu leeren.
Die Funktion ist in PHP seit Version 4.0.4 vorhanden, aber ihre Funktionalität wurde bisher nicht weiter ausgebaut. Sie bleibt möglicherweise als Platzhalter für zukünftige Implementierungen erhalten.