PHP 压缩字符串方法

最近帮朋友采集n多数据。bluehost的最大文件数量20w 也不小心就触顶了。

采集东西的时候,因为抓取网页的时间过长,所以担心数据采集漏缺,都把网页文件缓存到虚拟机。so~
决定将不用到的东西,都打包压缩,然后删了文件。但是网页文件相当多。如果删除,后续需要补充什么东西的话相当麻烦。 所以决定放数据库里。bluehost限制的是文件数量,大小是不怎么计较的,按官方的话说,主要担心潜在文件安全,而且最大的扩展也只到30w,所以还是老实清理系统,将html缓存文件和各种采集的特殊数据,都放数据库里。回到整体,就有今天的压缩啦~

顺便符上blushost的数据库大小说明:

https://my.bluehost.com/cgi/help/429

参考:http://www.open-open.com/bbs/view/1319888000999

原文有说过一个失真的情况。具体看应用。因为我这边主要针对文本(网页源文件),所以是最好压缩的。有兴趣去了解原理,就知道为什么图片除了缩小,都不太好压缩,而文本类,轻松就压缩剩几十分之一了。

测试代码:

<?php
$filename = 'test.html';
//文件大小 3.2 M 某某变态网站,不说明了。。。
$filecontent = file_get_contents ( $filename );
// 压缩率最低(gzip压缩算法) 生成结果可以直接写到.gz文件中
$gzencode = gzencode ( $filecontent, 9 );
file_put_contents ( "gzencode.txt", $gzencode );
// 压缩率居中
$gzcompress = gzcompress ( $filecontent, 9 );
file_put_contents ( "gzcompress.txt", $gzcompress );
// 压缩率并列最高
$gzdeflate = gzdeflate ( $filecontent, 9 );
file_put_contents ( "gzdeflate.txt", $gzdeflate );

// 压缩率并列最高
$bzcompress = bzcompress ( $filecontent, 9 );
file_put_contents ( "bzcompress.txt", $bzcompress );

//压缩结果,前三种,文件都压缩到111kb ,最后一种压缩到 79kb。

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注