Bzip2 函数
在线手册:中文 英文
PHP手册

bzopen

(PHP 4 >= 4.0.4, PHP 5)

bzopenOpens a bzip2 compressed file

说明

resource bzopen ( string $filename , string $mode )

bzopen() opens a bzip2 (.bz2) file for reading or writing.

参数

filename

The name of the file to open.

mode

Similar to the fopen() function, only 'r' (read) and 'w' (write) are supported. Everything else will cause bzopen to return FALSE.

返回值

If the open fails, bzopen() returns FALSE, otherwise it returns a pointer to the newly opened file.

范例

Example #1 bzopen() example

<?php

$file 
"/tmp/foo.bz2";
$bz bzopen($file"r") or die("Couldn't open $file for reading");

bzclose($bz);

?>

参见


Bzip2 函数
在线手册:中文 英文
PHP手册
PHP手册 - N: Opens a bzip2 compressed file

用户评论:

KrazyBox (31-Dec-2008 01:44)

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.

Jille at quis dot cx dot spam dot to dot my dot devnull (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);
?>