可能重复:
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);
答案 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)) {
.....
}