0

我想压缩 1 个小文件/数据,只有文件大小很重要。无需文件信息存储,如文件名、大小、日期等...

如果我使用 rar/7zip/zip 作为 CLI,则会将文件信息添加到存档中。这对我不好。我找到了文件大小的最佳压缩解决方案。

在 PHP 中,我可以使用 gzdeflate() 或 bzcompress() 来压缩字符串,然后以压缩的形式保存到文件中。我找到了相同的或 CLI 解决方案。 环境:Linux,32/64 位。

我想将 7zip/7za 用于字符串/流压缩。

如果我使用 7z 的二进制版本,例如:7za a -mx9 output.7z input.dat

但是这次在.7z 中找到了文件/日期/大小信息并且文件大小更大。

如何使用 7zip 或其他更好的压缩器(如 bzcompress 或 gzdeflate)仅压缩数据流,而无需文件信息?

也许我实际上不能在 PHP 中使用 7zip,因为还不支持。

有人可以推荐/创建一个小型 C/C++ CLI 应用程序/源代码或其他语言,在 Linux CLI 中可以使用什么来压缩 1 个文件并输出到 1 个文件?

例如我想要shell exec:

7zcpp input.dat output.7z7zcpp -mx9 input.dat output.7z

总结:压缩速度不重要,只有更好,文件更小。我只想压缩 1 个文件(字符串/流),每个字节计数,存档内不需要文件名/日期信息。我可以使用比 7zip 更好的压缩器,但我认为这实际上是最好的压缩器之一。有什么想法、建议吗?

谢谢

4

1 回答 1

1

7Zip memory compression functions - You could check out their SDK and try to look through the functions, - In (C, C++, Java and C#, too bad no php, unless you create your own php extension to bring 7z functionality into your app). In the LZMA SDK, go through the path C\Util\Lzma, find the LzmaUtil.c, it's a perfect example to help you . But I've personally used zlib, lzma compresses to 8% of data set size, compared to zlib's 12%, even though zlib is much faster. But since you don't give a shit about speed, lzma is best for you then

于 2015-06-16T05:54:54.950 回答