确保在循环遍历 bzfile 时检查 bzerror。bzread 不会检测到压缩错误,即使以 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);