我有一个问题,我在Linux服务器上安装'Archive_Zip 0.1.1',但当我试图运行脚本创建zip文件时,它给出了致命的错误

致命错误:类ZipArchive没有在…

我把密码放哪了

$zip = new ZipArchive;
var_dump($zip);
$res = $zip->open($filename, ZipArchive::OVERWRITE);
if ($res !== TRUE) {
    echo 'Error: Unable to create zip file';
    exit;
}
if (is_file($src)) {
    $zip->addFile($src);
} else {
    // echo "<br>" . dirname(__FILE__) . $src;//'/install1';
    if (!is_dir($src)) {
         $zip->close();
         @unlink($filename);
         echo 'Error: File not found';
         exit;
    }
    recurse_zip($src, $zip, $path_length);
}
$zip->close();
echo "<br>file name ".$filename;

但是它没有找到类文件。

请告诉我解决办法。我该怎么解决这个问题呢? 我还把php.ini文件放在脚本所在的文件夹中,但它不起作用。


当前回答

要出现ZipArchive类,PHP需要安装zip扩展。

有关安装说明(Linux和Windows),请参阅此页。

其他回答

PHP 5.2.0及更高版本

Linux系统

为了使用这些函数,您必须使用——enable-zip configure选项来编译支持zip的PHP。

窗户

Windows用户需要在php.ini中启用php_zip.dll才能使用这些函数。

我在GCP上在应用引擎标准环境中部署wordpress时遇到了这个问题。这就解决了问题:

sudo apt-get install php7.2-zip

名称空间

如果你在添加命名空间后遇到这个问题,你可以使用全局命名空间(反斜杠\):

$zip = new \ZipArchive;

首先,远程服务器的解决方案:

如果你正在使用cpanel,你可能已经安装了zip扩展,但没有激活。你需要激活它。在这种情况下,你需要去cpanel >在软件部分>点击PHP版本。然后找到zip并检查它。现在保存。

你应该看到像图上那样。

刷新页面。错误应该会消失。

注意:如果您没有找到,请联系服务器提供商。他们会为你安装的。

在Amazon ec2上,Ubuntu + nginx + php7,我有同样的问题,解决它使用:

Sudo apt-get install php7.0-zip