Example on how to read an entry from a ZIP archive (file "bar.txt" inside "./foo.zip"):
<?php
$fp = fopen('zip://./foo.zip#bar.txt', 'r');
if( $fp ){
while( !feof($fp) ){
echo fread($fp, 8192);
}
fclose($fp);
}
?>
Also, apparently, the "zip:" wrapper does not allow writing as of PHP/5.3.6. You can read http://php.net/ziparchive-getstream for further reference since the underlying code is probably the same.
zlib://
bzip2://
zip://
zlib:// -- bzip2:// -- zip:// — Flux compressés
Description
zlib: PHP 4.0.4 - PHP 4.2.3 (systèmes avec fopencookie uniquement)
compress.zlib:// et compress.bzip2:// PHP 4.3.0 et suivant
zlib: fonctionne comme gzopen(), hormis le fait que le flux peut être utilisé directement avec fread() et les autres fonctions de système de fichiers. Cette notation est obsolète depuis PHP 4.3.0, étant données les ambiguïtés dues aux noms de fichiers contenant des deux points ':'. Utilisez plutôt compress.zlib://.
compress.zlib:// et compress.bzip2:// sont respectivement équivalents à gzopen() et bzopen(), et ils opèrent même sur les systèmes qui ne supportent pas fopencookie.
L'extension ZIP enregistre le gestionnaire zip:.
Options
- zlib:
- compress.zlib://
- compress.bzip2://
alvaro at demogracia dot com
12-Apr-2011 07:41
joshualross at gmail dot com
19-Aug-2007 12:24
I had a difficult time finding how to use compress.zlib with an http resource so I thought I would post what I found
<?php
$file = 'compress.zlib://http://www.example.com/myarchive.gz';
$fr = fopen($file, 'rb');
?>
Per the bugreport I found here (http://bugs.php.net/bug.php?id=29045)
