(PHP 5 >= 5.2.0, PECL zip >= 1.1.0)
ZipArchive::getStream — Get a file handler to the entry defined by its name (read only).
Get a file handler to the entry defined by its name. For now it only supports read operations.
The name of the entry to use.
Returns a file pointer (resource) on success or FALSE on failure.
Пример #1 Get the entry contents with fread() and store it
<?php$content = '';$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";}?>
Пример #2 Same as the previous example but with fopen() and the zip stream wrapper
<?php$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";?>
Пример #3 Stream wrapper and image, can be used with the xml function as well
<?php$im = imagecreatefromgif('zip://' . dirname(__FILE__) . '/test_im.zip#pear_item.gif');imagepng($im, 'a.png');?>