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 — bzip2 압축 파일 열기
설명
resource bzopen
( string $filename
, string $mode
)
bzopen()은 bzip2(.bz2) 파일을 읽고 쓸 수 있게 엽니다.
반환값
열기에 실패하면, bzopen()은 FALSE를 반환합니다. 그 외에는 새로 열린 파일의 포인터를 반환합니다.
예제
Example #1 bzopen() 예제
<?php
$file = "/tmp/foo.bz2";
$bz = bzopen($file, "r") or die("Couldn't open $file for reading");
bzclose($bz);
?>
bzopen
KrazyBox
31-Dec-2008 01:44
31-Dec-2008 01:44
camaron at kolokonklan dot es
01-Jul-2008 09:33
01-Jul-2008 09:33
There should be a link to gzopen() int the See also section, and a link back.
Jille at quis dot cx dot spam dot to dot my dot devnull
19-Mar-2008 09:11
19-Mar-2008 09: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);
?>
