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. Documentation
Returns a resource handle for later use with zip_read() and zip_close() or returns the number of error if filename does not exist or in case of other error.
You need to output $open
and 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.