bzopen

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

bzopen打开 bzip2 压缩文件

描述

bzopen(string|resource $file, string $mode): resource|false

bzopen() 打开一个 bzip2 (.bz2) 文件以进行读取或写入。

参数

file

要打开的文件的名称,或现有流资源。

mode

支持的模式为 'r' (读取) 和 'w' (写入)。其他任何模式都会导致 bzopen() 返回 false

返回值

如果打开失败,bzopen() 返回 false,否则返回指向新打开文件的指针。

示例

示例 #1 bzopen() 示例

<?php

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

bzclose($bz);

?>

参见

添加备注

用户贡献的备注 2 个备注

2
KrazyBox
15 年前
在某些情况下,您可能希望将 bzip2 流发送到客户端。

为此,您只需要

<?php
ob_flush
();
$bz = bzopen('php://stdout', 'w');
bzwrite($bz, 'some input here');
bzclose($bz);
?>

但是,请注意,因为您使用的是 STDOUT,所以在实际写入流之前需要 ob_flush()。否则,您可能会在发送标头之前发送数据,这会在大多数情况下导致服务器端和客户端端出现错误。

您可能能够使用 php://output 而不是 php://stdout,但是在我测试(使用 Linux)中,php://output 根本不起作用。
-3
Jille at quis dot cx dot spam dot to dot my dot devnull
16 年前
警告!

上面显示的示例并非在所有情况下都适用!
此示例将继续读取,直到没有更多数据

<?PHP
$bz
=bzopen('foo.bz2', 'r');
$data="";
do {
$line=bzread($bz, 8092);
if(
$line!==false)
$data.=$line;
}
while(
$line);
bzclose($bz);
?>
To Top