bzread
(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)
bzread — バイナリ対応の bzip2 ファイル読み込み
説明
bzread() は、与えられた bzip2 ファイルポインタから読み込みます。
読み込みは、(圧縮前の状態で) length
バイトが読み込まれたか、EOF に達したかのどちらか最初に来た方で終了します。
パラメータ
bz
-
ファイルポインタ。これは有効である必要があり、 bzopen() によりオープンされたファイルを指してい る必要があります。
length
-
指定されない場合、bzread() は一度に (圧縮前の状態で) 1024バイト読み込みます。 最大で 8192 バイト (圧縮前) までを一度に読み込みます。
戻り値
非圧縮データ、もしくはエラー時に false
を返します。
例
例1 bzread() の例
<?php
$file = "/tmp/foo.bz2";
$bz = bzopen($file, "r") or die("Couldn't open $file");
$decompressed_file = '';
while (!feof($bz)) {
$decompressed_file .= bzread($bz, 4096);
}
bzclose($bz);
echo "The contents of $file are: <br />\n";
echo $decompressed_file;
?>
+add a note
User Contributed Notes 2 notes
user@anonymous ¶
12 years ago
Make sure you check for bzerror while looping through a bzfile. bzread will not detect a compression error and can continue forever even at the cost of 100% cpu.
$fh = bzopen('file.bz2','r');
while(!feof($fh)) {
$buffer = bzread($fh);
if($buffer === FALSE) die('Read problem');
if(bzerror($fh) !== 0) die('Compression Problem');
}
bzclose($fh);
Anonymous ¶
9 years ago
The earlier posted code has a small bug in it: it uses bzerror instead of bzerrno. Should be like this:
$fh = bzopen('file.bz2','r');
while(!feof($fh)) {
$buffer = bzread($fh);
if($buffer === FALSE) die('Read problem');
if(bzerrno($fh) !== 0) die('Compression Problem');
}
bzclose($fh);
↑ and ↓ to navigate •
Enter to select •
Esc to close
Press Enter without
selection to search using Google