我有一个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);
鉴于大量文件具有相同或相似的路径,我想压缩字符串以减少存储在磁盘上的文件大小。如何压缩/解压缩字符串,最有效的方法是什么? (存储时文件大小最小,压缩/解压缩时间最短。)
答案 0 :(得分:0)
gzcompress和gzuncompress是你想要使用的。
保存时对字符串使用gzcompress,加载时使用gzuncompress。 gzcompress功能甚至包括压缩级别选项,因此您可以选择良好的速度/大小权衡。
答案 1 :(得分:0)
您可以使用ZipArchive()类来压缩字符串。这应该非常有效,因为用于ZIP文件的压缩算法中的一个步骤是消除未压缩数据的重复部分。
如果你有一些时间,你也可以尝试使用树数据结构并按文件夹对文件进行排序(这应该给你一个想法:http://en.wikipedia.org/wiki/Tree_%28data_structure%29)。在大多数情况下,序列化树将比列表小。