(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)
ZipArchive::getStream — Erzeugt einen Dateizeiger zu dem per Name bestimmten Eintrag (nur lesend)
$name
): resource|falseErzeugt 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 Dateizeiger (Ressource) zurück.
Bei einem Fehler wird false
zurückgegeben.
Beispiel #1 Den Eintragsinhalt mit fread() abrufen 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 auch mit der XML-Funktion verwendet werden
<?php
$im = imagecreatefromgif('zip://' . dirname(__FILE__) . '/test_im.zip#pear_item.gif');
imagepng($im, 'a.png');
?>