我正在寻找用PHP压缩文件/字符串的最佳方法


I looking for the best way to compress a file/string with PHP

在php.net网站上有很多压缩选项:

  • Bzip2
  • LZF
  • Phar
  • Rar
  • Zip
  • Zlib

我在寻找最好的选择。换句话说,哪个是斋戒?

我也在考虑把文件分成多个。

我考虑将文件重新格式化为一个巨大的字符串,然后使用PHP脚本在一定数量的字符后拆分字符串。但我不确定这是最快的方法。

要将文件放入字符串,我正在考虑使用base64_encode…这是最好的方法吗?

提前感谢您的提示和帮助

base64_encode()将使字符串变长,而不是变短。它的设计目的是获取二进制数据,并将其转换为可打印的7位ASCII码。

UPDATE:如果你正在压缩文件供用户下载,那么你制作更小的文件比快速完成更重要。根据我的经验,PHP中的Bzip2(或类似的命令行)通常产生较小的文件。

你是在为网站或其他东西自动化这个过程吗?Unix提供了一些非常棒的命令行工具(tarsplitgzip等),它们完全可以完成您在这里讨论的所有事情。

tar + bz2应该是最有效的压缩。但是在压缩/解压缩(特别是在bzip2上使用——best argument)时,它带来了CPU使用成本