(PHP 5 >= 5.2.0, PECL zip >= 1.1.0)
ZipArchive::getStream — Erzeugt einen Dateizeiger zu dem per Name bestimmten Eintrag (read only)
Erzeugt einen Dateizeiger zu dem per Name bestimmten Eintrag. Derzeit werden nur Leseoperationen unterstützt.
Der Name des zu verwendenden Eintrags.
Gibt im Erfolgsfall einen Filepointer (resource) zurück. Im Fehlerfall wird FALSE zurückgegeben.
Beispiel #1 Den Eintragsinhalt mit fread() holen und speichern
<?php
$content = '';
$z = new ZipArchive();
if ($z->open('test.zip')) {
$fp = $z->getStream('test');
if(!$fp) exit("Fehler\n");
while (!feof($fp)) {
$contents .= fread($fp, 2);
}
fclose($fp);
file_put_contents('t',$contents);
echo "Erledigt.\n";
}
?>
Beispiel #2 Das gleiche wie im vorigen Beispiel aber mit fopen() und dem ZIP-Streamwrapper
<?php
$fp = fopen('zip://' . dirname(__FILE__) . '/test.zip#test', 'r');
if (!$fp) {
exit("Datei kann nicht geöffnet werden\n");
}
while (!feof($fp)) {
$contents .= fread($fp, 2);
echo "$contents\n";
}
fclose($fp);
echo "Erledigt.\n";
?>
Beispiel #3 Streamwrapper und Bild, kann ebenfalls mit der XML-Funktion verwendet werden
<?php
$im = imagecreatefromgif('zip://' . dirname(__FILE__) . '/test_im.zip#pear_item.gif');
imagepng($im, 'a.png');
?>