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);
PHP.mk документација
bzread
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Патека
function.bzread.php
Локална патека за оваа страница.
Извор
php.net/manual/en
Оригиналниот HTML се реупотребува и локално се стилизира.
Режим
Прокси + превод во позадина
Кодовите, табелите и белешките остануваат читливи во истиот тек.
Референца
function.bzread.php
bzread
Референца за `function.bzread.php` со подобрена типографија и навигација.
bzread
(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)
bzread — Бинарно безбедно читање од bzip2 датотека
= NULL
bzread() чита од дадениот покажувач на bzip2 датотека.
Читањето престанува кога length ќе се прочитаат (некомпресирани) бајти или ќе се достигне крајот на датотеката, кое и да настапи прво.
Параметри
bz- запишува стринг во дадениот bzip2 стрим од датотека. bzopen().
length- Ако не е наведено, bzread() ќе прочита 1024 (некомпресирани) бајти одеднаш. Максимум 8192 некомпресирани бајти ќе се прочитаат одеднаш.
Вратени вредности
Враќа декомпресирани податоци, или false при грешка.
Примери
Пример #1 bzread() example
<?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;
?>Белешки од корисници 2 забелешки
корисник@анонимен ¶
пред 13 години
Анонимен ¶
пред 10 години
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);