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);
bzread
(PHP 4 >= 4.0.4, PHP 5)
bzread — Bzip2 dosyasını ikil olarak okur
Açıklama
string bzread
( resource
$bz
[, int $uzunluk = 1024
] )bzread(), bzip2 dosya tanıtıcısı verilen dosyayı okur.
Sıkıştırıması açılmış veri belirtilen uzunluk
baytlık uzunluğa eriştiği zaman veya dosya sonuna varıldığı zaman okuma
işlemi sona erer.
Değiştirgeler
-
bz -
Dosya tanıtıcısı. Geçerli ve bzopen() işlevi tarafından açılmış bir dosyayı göstermelidir.
-
uzunluk -
Eğer belirtilmemişse, bzread() her seferinde 1024 baytlık sıkıştırması açılmış veri okuyacaktır.
Dönen Değerler
Sıkıştırması açılmış veriyi veya hata durumunda FALSE döndürür.
Örnekler
Örnek 1 - bzread() örneği
<?php
$dosya = '/tmp/foo.bz2';
$bz = bzopen($dosya, 'r') or die("Belirtilen $dosya dosyası açılamadı.");
$acilmis_icerik = '';
while (!feof($bz)) {
$acilmis_icerik .= bzread($bz, 4096);
}
bzclose($bz);
echo "Belirtilen dosya $dosya içeriği: <br />\n";
echo $acilmis_icerik;
?>
user@anonymous ¶
1 year ago
