我的代码在测试服务器上运行正常,但在实时代码上失败(由于PHP版本)。
我收到了这个错误:
Fatal error: Cannot instantiate non-existent class: ziparchive in /home/sites/www.example.com/web/zip.php on line 123
,代码是:
$zip = new ZipArchive;
$zip->open($_FILES['uploadedfile']['tmp_name']);
$zip->extractTo('unzipped/' . $id . '/');
$zip->close();
如何在没有ZipArchive类的情况下使其工作?
编辑:我使用了Mighty Google:
<?php
$zip = zip_open("zip.zip");
if ($zip) {
while ($zip_entry = zip_read($zip)) {
$fp = fopen("zip/".zip_entry_name($zip_entry), "w");
if (zip_entry_open($zip, $zip_entry, "r")) {
$buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
fwrite($fp,"$buf");
zip_entry_close($zip_entry);
fclose($fp);
}
}
zip_close($zip);
}
?>
效果很好。
答案 0 :(得分:2)
检查两个系统上的PHP版本。 还检查php是否使用--enable-zip配置选项编译
如果需要,请安装此模块。
检查:http://www.php.net/manual/en/zip.installation.php了解有关如何安装的更多信息。
如果您想检查php是否具有正确的配置选项或已加载的模块,您可以使用:
<?php
phpinfo();
?>
答案 1 :(得分:0)
也许你刚刚没有在服务器端php.ini中启用ZipArchive模块?
编辑: 也许你只是忘了括号? 尝试 $ zip = new ZipArchive();