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

发布于 2024-08-13 04:34:57 字数 39 浏览 4 评论 0原文

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

Is it possible to change the compression level and/or method used by the ZipArchive class?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

乖乖 2024-08-20 04:34:57

它似乎已在 PHP 7 中实现/添加到重新分发文件中: ZipArchive::setCompressionNameZipArchive: :设置压缩索引。未测试。

PS:之所以为文件而不是整个存档单独设置,是因为 ZIP 存档内的文件实际上本身就是 ZIP 文件,只是“粘合”在一起成为一个“主 ZIP 存档”。

It seems to have been implemented / added to redistribution files in PHP 7: ZipArchive::setCompressionName and ZipArchive::setCompressionIndex. Not tested.

PS: The reason why it is set individually for files and not the entire archive is because files inside a ZIP archive are actually themself ZIP files and are just "glued" together to one "master ZIP archive".

初心未许 2024-08-20 04:34:57

正如上一篇文章所述,您无法使用 Zip 来做到这一点。
如果指定压缩级别比归档方法更重要,则 PHP zlib 允许这样做:

string gzcompress  ( string $data  [, int $level = -1  ] )

$level - 压缩级别。可以指定为 0(表示无压缩),最多指定为 9(表示最大压缩)。

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

As stated in previous post, you can't do it with Zip.
If specifying a compression level is more important than the archiving method, then PHP zlib allows it:

string gzcompress  ( string $data  [, int $level = -1  ] )

$level - The level of compression. Can be given as 0 for no compression up to 9 for maximum compression.

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

や莫失莫忘 2024-08-20 04:34:57

事实上,即使在 2014 年,这也是不可能的,所以我不得不将“exec”函数与 linux 的 zip 命令一起使用:

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

Indeed it is not possible evenin 2014 so i had to use the "exec" function with the zip command for linux :

exec("cd \"".$the_directory_you want_to_zip."\" && zip -0 -r \"".$path_zip."\" .");
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文