bzread

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

bzreadLectura binaria de un archivo bzip2

Descripción

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

bzread() lee desde el puntero de archivo bzip2 dado.

La lectura se detiene cuando length (no comprimido) caracteres han sido leídos o si se alcanza el final del archivo, el primero de los dos que ocurra.

Parámetros

bz

El puntero de archivo. Debe ser válido y debe apuntar a un archivo abierto correctamente por la función bzopen().

length

Si no se especifica, bzread() leerá 1024 (no comprimidos) caracteres a la vez. Un máximo de 8192 caracteres no comprimidos serán leídos a la vez.

Valores devueltos

Devuelve los datos no comprimidos o false si ocurre un error.

Ejemplos

Ejemplo #1 Ejemplo con bzread()

<?php

$file
= "/tmp/foo.bz2";
$bz = bzopen($file, "r") or die("Imposible abrir el archivo $file");

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

echo
"El contenido del archivo $file es : <br />\n";
echo
$decompressed_file;

?>

Ver también

  • bzwrite() - Escritura binaria en un archivo bzip2
  • feof() - Prueba el final del archivo
  • bzopen() - Abre un archivo comprimido con 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
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