打开zip并阅读内容

时间:2010-01-13 22:49:06

标签: php view zip

  

可能重复:
  mysql_fetch_array() expects parameter 1 to be resource, boolean given in select

我有一个小PHP,应用程序或任何打开zip并读取内容的内容。但它只在某些时候工作...有时当我上传.zip并尝试查看内容时,它会工作并回送每个文件给我,但有些时候(是的,我有很多.zip文件),它会返回这些错误:

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

这是我的代码:

$open = zip_open($file);
while($zip = zip_read($open)) {
$file = zip_entry_name($zip);
echo $file.'<br />';
}
zip_close($open);

2 个答案:

答案 0 :(得分:8)

发生这种情况的情况是无法打开Zip文件的情况。

Zip_open()在遇到错误时返回整数而不是文件句柄。 Documentation

  

返回一个资源句柄,供以后与zip_read()和zip_close()一起使用,或者如果filename不存在或者出现其他错误,则返回错误数。

您需要输出$open并检查它为您提供的错误代码。在尝试运行任何zip操作之前,您应该将其作为固定检查构建到代码中。

This table会告诉您哪个错误代码意味着什么。

答案 1 :(得分:2)

$open = zip_open($file);

if (is_numeric($open)) {
    echo "Zip Open Error #: $open";
   } else {
   while($zip = zip_read($open)) {
   .....
   }