7zip 字符串/流压缩 PHP/C?存档中没有文件名/日期存储.7z每个字节都很重要


7zip string/stream compression PHP/C? No file name / date store in .7z archive, every byte count

我想压缩 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输出.7z7ZCPP -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 最适合你