在PHP中压缩文本文件列表的最佳方法

时间:2014-06-16 20:09:40

标签: php text compression

我有一个PHP脚本,可以处理大量文件。该数组被序列化并以文本格式存储,如:

E:\folder1\folder2\file2.txt|E:\folder1\folder2\file3.txt|E:\folder1\folder3\file1.txt|E:\folder1\folder4\file1.txt|E:\folder1\folder2\file5.txt etc... 

使用" |"从文件中读回数组时的拆分字符,如:$array = explode("|",$filesText);

鉴于大量文件具有相同或相似的路径,我想压缩字符串以减少存储在磁盘上的文件大小。如何压缩/解压缩字符串,最有效的方法是什么? (存储时文件大小最小,压缩/解压缩时间最短。)

2 个答案:

答案 0 :(得分:0)

gzcompressgzuncompress是你想要使用的。

保存时对字符串使用gzcompress,加载时使用gzuncompress。 gzcompress功能甚至包括压缩级别选项,因此您可以选择良好的速度/大小权衡。

答案 1 :(得分:0)

您可以使用ZipArchive()类来压缩字符串。这应该非常有效,因为用于ZIP文件的压缩算法中的一个步骤是消除未压缩数据的重复部分。

如果你有一些时间,你也可以尝试使用树数据结构并按文件夹对文件进行排序(这应该给你一个想法:http://en.wikipedia.org/wiki/Tree_%28data_structure%29)。在大多数情况下,序列化树将比列表小。