我想压缩 1 个小文件/数据,只有文件大小很重要。无需文件信息存储,如文件名,大小,日期等...
如果我使用 rar/7zip/zip 作为 CLI,文件信息将添加到存档中。这对我不好。我找到了文件大小的最佳压缩解决方案。
在PHP中,我可以使用gzdeflate()或bzcompress()来压缩字符串,然后以压缩的形式保存到文件中。我找到了相同或 CLI 的解决方案。环境:Linux,32/64位。
我想使用 7zip/7za 作为字符串/流压缩。
如果我使用 7z 的二进制版本,例如:7za a -mx9 输出.7z输入.dat
但是这次在.7z找到的文件/日期/大小信息和文件大小更大。
如何使用 7zip 或其他更好的压缩器(如 bzcompression 或 gzDeflate)仅压缩数据流,而没有文件信息?
也许我实际上不能在 PHP 中使用 7zip,因为尚不支持。
有人可以推荐/创建一个小型的 C/C++ CLI 应用程序/源代码或其他语言,Linux CLI 中可以使用什么来压缩 1 个文件并输出到 1 个文件?
例如,我想要 shell exec:
7ZCPP输入.dat输出.7z或7ZCPP -MX9 输入.dat输出.7z
总结:压缩速度不重要,重要的是更好,更小的文件大小。我只想压缩 1 个文件(字符串/流),每个字节计数,存档中不需要文件名/日期信息。我可以使用比 7zip 更好的压缩机,但我认为这实际上是最好的压缩机之一。有什么想法,建议吗?
谢谢
7Zip内存压缩函数 - 您可以查看他们的SDK并尝试查看功能, - 在(C,C++,Java和C#中,太糟糕了,没有php,除非你创建自己的php扩展将7z功能引入你的应用程序)。在LZMA SDK中,通过路径C''Util''Lzma,找到LzmaUtil.c,这是一个帮助你的完美例子。但我个人使用过 zlib,lzma 压缩到数据集大小的 8%,而 zlib 为 12%,尽管 zlib 要快得多。但是既然你不在乎速度,那么 lzma 最适合你