SunshinePHP Developer Conference 2015

bzopen

(PHP 4 >= 4.0.4, PHP 5)

bzopenAbre un fichero comprimido con bzip2

Descripción

resource bzopen ( string $filename , string $mode )

bzopen() abre un fichero bzip2 (.bz2) para lectura o escritura.

Parámetros

filename

El nombre del fichero a abrir, o un recurso de flujo existente.

mode

Similar a la función fopen(), solamente 'r' (lectura) y 'w' (escritura) están soportados. Todo lo demás hará que bzopen devuelva FALSE.

Valores devueltos

Si al abrir el fichero se produce un error, bzopen() devolverá FALSE, en caso contrario devolverá el puntero del nuevo fichero abierto.

Ejemplos

Ejemplo #1 Ejemplo de bzopen()

<?php

$file 
"/tmp/foo.bz2";
$bz bzopen($file"r") or die("No se pudo abrir el fichero $file para lectura");

bzclose($bz);

?>

Ver también

add a note add a note

User Contributed Notes 2 notes

up
0
KrazyBox
5 years ago
In some circumstances, you may want to send a bzip2 stream to the client.

To do this, you need only do:

<?php
ob_flush
();
$bz = bzopen('php://stdout', 'w');
bzwrite($bz, 'some input here');
bzclose($bz);
?>

However, please note, because you are using STDOUT, you need to ob_flush() before actually writing to the stream. Otherwise, you might be sending data before the headers, which will cause errors on both server and client ends, in most cases.

You might be able to use php://output rather than php://stdout, however in my tests (with Linux), php://output doesn't actually work - at all.
up
0
Jille at quis dot cx dot spam dot to dot my dot devnull
6 years ago
Warning!

the example show above is _not_ working in every case!
This example will continue reading until there is no more data:

<?PHP
      $bz
=bzopen('foo.bz2', 'r');
     
$data="";
      do {
       
$line=bzread($bz, 8092);
        if(
$line!==false)
         
$data.=$line;
      }
      while(
$line);
     
bzclose($bz);
?>
To Top