linux下php zipArchive采用ZipArchive::OVERWRITE失败,返回错误码:9

个人博客原文:http://www.lampnick.com/php/261

在linux系统下使用zipArchive压缩文件,采用ZipArchive::OVERWRITE方式,发现打开失败,打印返回的错误码为:9,查看官方文档错误码9代表没有这个文件,

$zip = new \ZipArchive(); $res = $zip->open($zip_file_path, \ZipArchive::OVERWRITE); //失败,返回9

后来使用ZipArchive::CREATE打开成功,

$zip = new \ZipArchive(); $res = $zip->open($zip_file_path, \ZipArchive::CREATE); //成功,返回true

是因为linux系统下不能使用OVERWRITE模式打开?no no no…
其实是因为pecl zip版本太低的原因。
通过phpinfo(); 查出zip版本为:Libzip version => 1.1.2,通过到官网查询到,这个版本的zip还不支持 ZIPARCHIVE::OVERWRITE 模式!
linux下php zipArchive采用ZipArchive::OVERWRITE失败,返回错误码:9
文章图片

【linux下php zipArchive采用ZipArchive::OVERWRITE失败,返回错误码:9】pecl zip在1.7.0版本才加入了ZIPARCHIVE::OVERWRITE模式,真尴尬啊。

    推荐阅读