*Here is a simple example*
<?php
$zp = zip_open('file.zip');
while ($file = zip_read($zp)) {
echo zip_entry_name($file).PHP_EOL;
}
?>
The output will be something similar to:
myfile.txt
mydir/
(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.0.0)
zip_read — Lit la prochaine entrée dans une archive ZIP
Cette fonction est OBSOLÈTE à partir de PHP 8.0.0. Dépendre de cette fonction est fortement déconseillé.
zip_read() lit la prochaine entrée dans une archive ZIP.
Retourne une ressource de dossier d'archive,
à utiliser plus tard avec les autres fonctions de la bibliothèque,
false
s'il n'y a plus d'entrées à lire dans l'archive ZIP ou le numéro
de l'erreur si une erreur survient.
Version | Description |
---|---|
8.0.0 | Cette fonction est obsolète en faveur de l'API orientée objet, voir ZipArchive::statIndex(). |
*Here is a simple example*
<?php
$zp = zip_open('file.zip');
while ($file = zip_read($zp)) {
echo zip_entry_name($file).PHP_EOL;
}
?>
The output will be something similar to:
myfile.txt
mydir/
Note: Only the first 65535 entries will be returned, even if your archive contains more entries. See https://bugs.php.net/bug.php?id=59118 for details.
If you get an error like this:
Warning: zip_read() expects parameter 1 to be resource, integer given in xxxxxx on line x
It's because zip_open() failed to open the file and returned an error code instead of a resource. It took me a while to figure out why it failed to open the file, until I tried to use the FULL path to the file.
<?php
// Even if the file exists, zip_open() will return an error code.
$file = 'file.zip';
$zip = zip_open($file);
// The workaround:
$file = getcwd() . '/file.zip';
// Or:
$file = 'C:\\path\\to\\file.zip';
?>
This worked for me on Windows at least. I'm not sure about other platforms.