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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With