In some circumstances, you may want to send a bzip2 stream to the client.
To do this, you need only do:
<?php
ob_flush();
$bz = bzopen('php://stdout', 'w');
bzwrite($bz, 'some input here');
bzclose($bz);
?>
However, please note, because you are using STDOUT, you need to ob_flush() before actually writing to the stream. Otherwise, you might be sending data before the headers, which will cause errors on both server and client ends, in most cases.
You might be able to use php://output rather than php://stdout, however in my tests (with Linux), php://output doesn't actually work - at all.
bzopen
(PHP 4 >= 4.0.4, PHP 5)
bzopen — Ouvre un fichier compressé avec bzip2
Description
resource bzopen
( string $filename
, string $mode
)
bzopen() ouvre un fichier bzip2 (.bz2) en écriture ou en lecture.
Liste de paramètres
- filename
-
Le nom du fichier à ouvrir.
- mode
-
Similaire à la fonction fopen(), seules les options 'r' (pour lecture), et 'w' (pour écriture) sont supportées. Toute autre option fera que la fonction retournera FALSE.
Valeurs de retour
Si l'ouverture échoue, bzopen() retourne FALSE, sinon, il retourne un pointeur vers le fichier ouvert.
Exemples
Exemple #1 Exemple avec bzopen()
<?php
$file = "/tmp/foo.bz2";
$bz = bzopen($file, "r") or die("Impossible d'ouvrir le fichier $file pour lecture");
bzclose($bz);
?>
KrazyBox
30-Dec-2008 05:44
Jille at quis dot cx dot spam dot to dot my dot devnull
19-Mar-2008 01:11
Warning!
the example show above is _not_ working in every case!
This example will continue reading until there is no more data:
<?PHP
$bz=bzopen('foo.bz2', 'r');
$data="";
do {
$line=bzread($bz, 8092);
if($line!==false)
$data.=$line;
}
while($line);
bzclose($bz);
?>
