Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Open zip and read contents

Tags:

php

zip

view

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);
like image 575
David Avatar asked Jan 21 '26 01:01

David


1 Answers

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.

like image 160
Pekka Avatar answered Jan 23 '26 14:01

Pekka



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!