bzread

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

bzreadLeitura binária segura de arquivo bzip2

Descrição

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

bzread() faz leitura de um ponteiro de arquivo bzip2 fornecido.

A leitura para quando o número de bytes (não comprimidos) informado em length tiver sido alcançado ou o final do arquivo, o que ocorrer primeiro.

Parâmetros

bz

O ponteiro do arquivo. Precisa ser válido e apontar para um arquivo aberto com sucesso pela função bzopen().

length

Se não especificado, a função bzread() lerá 1024 bytes (não comprimidos) de cada vez. Um máximo de 8192 bytes não comprimidos será lido de cada vez.

Valor Retornado

Retorna os dados descomprimidos, ou false em caso de erro.

Exemplos

Exemplo #1 Exemplo de bzread()

<?php

$file
= "/tmp/foo.bz2";
$bz = bzopen($file, "r") or die("Não foi possível abrir $file");

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

echo
"O conteúdo de $file é: <br />\n";
echo
$decompressed_file;

?>

Veja Também

  • bzwrite() - Gravação binária segura em arquivo bzip2
  • feof() - Testa pelo fim-de-arquivo em um ponteiro de arquivo
  • bzopen() - Abre um arquivo comprimido com bzip2

add a note add a note

User Contributed Notes 2 notes

up
3
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);
up
2
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);
To Top