array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'es', ), 'this' => array ( 0 => 'ziparchive.getstream.php', 1 => 'ZipArchive::getStream', ), 'up' => array ( 0 => 'class.ziparchive.php', 1 => 'ZipArchive', ), 'prev' => array ( 0 => 'ziparchive.getstatusstring.php', 1 => 'ZipArchive::getStatusString', ), 'next' => array ( 0 => 'ziparchive.getstreamindex.php', 1 => 'ZipArchive::getStreamIndex', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'es', 'path' => 'reference/zip/ziparchive/getstream.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)
ZipArchive::getStream — Obtener un manejador de fichero para la entrada definido por su nombre (sólo lectura)
Obtener un manejador de fichero para la entrada definido por su nombre. Por ahora, éste solamente soporta operaciones de lectura.
name
El nombre de la entrada a utilizar.
Devuelve un puntero de fichero (un recurso) en caso de tener éxito, o false
en caso de error.
Ejemplo #1 Obtiene los contenidos de entrada con fread() y lo almacena
<?php
$contents = '';
$z = new ZipArchive();
if ($z->open('test.zip')) {
$fp = $z->getStream('test');
if(!$fp) exit("failed\n");
while (!feof($fp)) {
$contents .= fread($fp, 2);
}
fclose($fp);
file_put_contents('t',$contents);
echo "done.\n";
}
?>
Ejemplo #2 Lo mismo como el ejemplo anterior pero con fopen() y el envoltorio de flujo de zip
<?php
$contents = '';
$fp = fopen('zip://' . dirname(__FILE__) . '/test.zip#test', 'r');
if (!$fp) {
exit("cannot open\n");
}
while (!feof($fp)) {
$contents .= fread($fp, 2);
}
echo "$contents\n";
fclose($fp);
echo "done.\n";
?>
Ejemplo #3 El flujo de envoltorio y la imagen, también pueden ser utilizados con la función xml
<?php
$im = imagecreatefromgif('zip://' . dirname(__FILE__) . '/test_im.zip#pear_item.gif');
imagepng($im, 'a.png');
?>