是否可以更改ZipArchive
类使用的压缩级别和/或方法?
答案 0 :(得分:25)
根据open bug report feature request on php.net,目前无法做到这一点。
答案 1 :(得分:7)
如上一篇文章所述,你不能用Zip做到这一点。 如果指定压缩级别比归档方法更重要,那么PHP zlib允许它:
string gzcompress ( string $data [, int $level = -1 ] )
$ level - 压缩级别。可以给出为0表示无压缩,最高压缩为9。
答案 2 :(得分:5)
似乎已经在PHP 7中的重新分发文件中实现/添加:ZipArchive::setCompressionName和ZipArchive::setCompressionIndex。未经测试。
PS:为文件而不是整个档案单独设置的原因是因为ZIP档案中的文件实际上是自己的ZIP文件,只是“粘在一起”到一个“主ZIP档案”。
答案 3 :(得分:3)
确实,即使在2014年也不可能,所以我不得不使用" exec"使用zip命令执行linux:
exec("cd \"".$the_directory_you want_to_zip."\" && zip -0 -r \"".$path_zip."\" .");