update page now

bzread

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

bzreadLecture binaire d'un fichier bzip2

Description

bzread(resource $bz, int $length = 1024): string|false

bzread() lit depuis le pointeur de fichier bzip2 donné.

La lecture s'arrête lorsque length (non-compressé) octets ont été lus ou si la fin du fichier est atteint, le premier des deux qui survient.

Liste de paramètres

bz
Le pointeur de fichier. Il doit être valide et doit pointer vers un fichier ouvert avec succès par la fonction bzopen().
length
Si non spécifié, bzread() lira 1024 (non-compressé) octets à la fois. Un maximum de 8192 octets non-compressés sera lu à la fois.

Valeurs de retour

Retourne les données non-compressées ou false si une erreur survient.

Exemples

Exemple #1 Exemple avec bzread()

<?php

$file
= "/tmp/foo.bz2";
$bz = bzopen($file, "r") or die("Impossible d'ouvrir le fichier $file");

$decompressed_file = '';
while (!
feof($bz)) {
$decompressed_file .= bzread($bz, 4096);
}
bzclose($bz);

echo
"Le contenu du fichier $file est : <br />\n";
echo
$decompressed_file;

?>

Voir aussi

  • bzwrite() - Écriture binaire dans un fichier bzip2
  • feof() - Teste la fin du fichier
  • bzopen() - Ouvre un fichier compressé avec bzip2
add a note

User Contributed Notes 2 notes

up
2
user@anonymous
13 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);
up
1
Anonymous
10 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);
To Top