I have a little php, application or whatever that opens a zip and reads the content. But it only works SOME of the time… sometimes when I upload the .zip and try to view contents, it works and echos back each file to me, but some other times ( yes i have a lot of .zip files ), it returns these errors:
Warning: zip_read() expects parameter 1 to be resource, integer given in /home/blah/public_html/templates.php on line 23
Warning: zip_close() expects parameter 1 to be resource, integer given in /home/blah/public_html/templates.php on line 31
Here is my code:
$open = zip_open($file);
while($zip = zip_read($open)) {
$file = zip_entry_name($zip);
echo $file.'<br />';
}
zip_close($open);
The cases where that happens are cases when the Zip file can not be opened.
Zip_open()returns an integer instead of the file handle when it encounters an error. DocumentationYou need to output
$openand check what error code it gives you. You should build this into the code as a fixed check before trying to run any zip operations.This table will tell you which error code means what.