PHP 7.2.7:尝试调用类“ ZipArchive”的未定义方法“ setEncryptionName”

Mag*_*ity 3 php php-zip-archive php-7.2

我正在尝试使用PHP 7.2.7创建一个加密的,受密码保护的ZIP文件。但是,我收到以下错误消息:

Attempted to call an undefined method named "setEncryptionName" of class "ZipArchive".
Run Code Online (Sandbox Code Playgroud)

http://php.net/manual/zh/ziparchive.setencryptionname.php

如果我删除了,$zip->setEncryptionName()那么一切都可以100%起作用,除了ZIP文件没有密码保护。

我已经完成了Google和论坛搜索,找不到任何遇到过类似问题的人,这可能是因为PHP版本和功能还很新。

de *_*art 5

为了使该ZipArchive::setEncryptionName方法起作用,您将需要PHP> = 7.2,并带有ZIP扩展名。

请注意ZIP扩展名需要使用libzip-dev> = 1.2.0 进行编译

许多预编译软件包中的常见问题是,编译器在编译php-zip扩展之前没有升级libzip-dev 。这可能是您的情况。

请注意,您的ZIP不会被加密,并且该setPassword()功能仅ZipArchive::setEncryptionName在不可用时用于提取zip 。

这是变更日志:http : //pecl.php.net/package-info.php? package=zip&version= 1.14.0