我可以更改ZipArchive的压缩级别吗?

时间:2009-12-02 14:18:01

标签: php zip

是否可以更改ZipArchive类使用的压缩级别和/或方法?

4 个答案:

答案 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。

http://php.net/manual/en/book.zlib.php

答案 2 :(得分:5)

似乎已经在PHP 7中的重新分发文件中实现/添加:ZipArchive::setCompressionNameZipArchive::setCompressionIndex。未经测试。

PS:为文件而不是整个档案单独设置的原因是因为ZIP档案中的文件实际上是自己的ZIP文件,只是“粘在一起”到一个“主ZIP档案”。

答案 3 :(得分:3)

确实,即使在2014年也不可能,所以我不得不使用" exec"使用zip命令执行linux:

exec("cd \"".$the_directory_you want_to_zip."\" && zip -0 -r \"".$path_zip."\" .");
相关问题