查看: 1141|回复: 2
|
zip_read 的问题
[复制链接]
|
|
$zip = zip_open("test.zip");
if ($zip) {
while ($zip_entry = zip_read($zip)) {
echo "Name: " . zip_entry_name($zip_entry) . "\n";
echo "Actual Filesize: " . zip_entry_filesize($zip_entry) . "\n";
echo "Compressed Size: " . zip_entry_compressedsize($zip_entry) . "\n";
echo "Compression Method: " . zip_entry_compressionmethod($zip_entry) . "\n";
if (zip_entry_open($zip, $zip_entry, "r")) {
echo "File Contents:\n";
$buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
echo "$buf\n";
zip_entry_close($zip_entry);
}
echo "\n";
}
zip_close($zip);
}
Warning: zip_read() expects parameter 1 to be resource, integer given in C:\xampp\htdocs\test\test.php on line 23
PHP程式员来交流,请问有谁懂zip_read()的问题是出于哪里? |
|
|
|
|
|
|
|
发表于 17-7-2009 01:56 AM
|
显示全部楼层
如果你获得以下错误 :
Warning: zip_read() expects parameter 1 to be resource, integer given in xxxxxx on line x
这是因为你在使用zip_open()时已经失败开启这文件,并且resource那里返回一个错误码(资源被错误码代替了)。
nico@nicoswd.com在测试这问题时发现了问题就在于当他读取文件时。当他用FULL path的时候就解决他的问题了。
他说问题已在windows platform获得解决,但却不懂其他的会不会出现同样问题?
你的程式需要把这- $zip = zip_open($file);
- if ($zip) {
复制代码 改成这- $zip = zip_open($file);
- if (is_resource($zip)) {
复制代码 除错(debug)比较容易。 |
|
|
|
|
|
|
|
楼主 |
发表于 17-7-2009 10:39 AM
|
显示全部楼层
原帖由 jinn 于 17-7-2009 01:56 AM 发表
如果你获得以下错误 :
这是因为你在使用zip_open()时已经失败开启这文件,并且resource那里返回一个错误码(资源被错误码代替了)。
nico@nicoswd.com在测试这问题时发现了问题就在于当他读取文件时。当他用 ...
在昨天我开了这帖后,我已解决了问题
问题出于像你说的一样,文件的path的位置。。
它一定要是 full path, 不能 shortcut
只要加一句"getcwd()", 这样:
$file = getcwd() . '/test.zip';
然后还有你所提到的,改成 if(is_resource($zip))
就能阅读zip里面的内容了. |
|
|
|
|
|
|
| |
本周最热论坛帖子
|