(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.1.0)
ZipArchive::getStream — Erzeugt einen Dateizeiger zu dem per Name bestimmten Eintrag (read only)
$name
)Erzeugt einen Dateizeiger zu dem per Name bestimmten Eintrag. Derzeit werden nur Leseoperationen unterstützt.
name
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
$contents = '';
$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
$contents = '';
$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');
?>