,PHP字符串压缩流问题,怎么解决?

用户投稿 84 0

关于“gzip_php”的问题,小编就整理了【3】个相关介绍“gzip_php”的解答:

PHP字符串压缩流问题,怎么解决?

在PHP中偶尔遇到字符串的压缩,比如一个长字符串,数据库开始设计的字段存不下,但是又不想改数据库字段存储长度,就可以用压缩的方式降低数据字段字符串的长度数量级,把几百个字符的字符串压缩到几十个字符。总结下来有以下几个:

压缩函数:gzcompress gzdeflate gzencode

与之对应的解压函数如下:

解压函数:gzuncompress gzinflate gzdecode

特别注意:gzdecode是PHP 5.4.0之后才加入的,使用的时候要注意兼容性问题。

gzcompress gzdeflate gzencode函数的区别在于它们压缩的数据格式不同:

gzcompress使用的是ZLIB格式;

gzdeflate使用的是纯粹的DEFLATE格式;

gzencode使用的是GZIP格式;

如何启用iis的gzip压缩功能?

IIS6已经内建了Gzip压缩的支持,可惜,没有设置更好的管理界面。所以要打开这个选项,还要费些功夫。  

1、如果你需要压缩静态文件(HTML),需要在硬盘上建一个目录,并给它“IUSR_机器名”这个用户的写权限。如果压缩动态文件(PHP,asp,aspx,ashx)就不需要了,因为它的页面是每次都动态生成的,压缩完就放弃。

2、在IIS管理器中,“网站”节点上面(不是某个具体的站点,而是整个网站)右键-属性,选择“服务”标签,选上启用动态内容压缩,静态内容压缩。

3、在IIS管理器左侧选中“WEB服务器扩展”,新建一个服务器扩展。名字任意,比如gzip,文件的路径是:c:\windows\system32\inetsrv\gzip.dll,并启用这个扩展。

4、停止 IIS 服务,打开 C:\Windows\System32\inetsrv\MetaBase.xml(不停止IIS服务无法编辑该文件),以关键字“   根据需要增加一些要进行压缩的文件后缀,其中 HcFileExtensions 是静态文件的扩展名,增加 js 和 css 等;HcScriptFileExtensions 为动态文件的扩展名,增加 aspx,ashx等;HcDynamicCompressionLevel改成9,(0-10,9是性价比最高的一个)。  

gzip原理?

gzip 使用deflate算法进行压缩。zlib,以及图形格式png,使用的压缩算法也是deflate算法。从gzip的源码中,我们了解到了defalte算法的原理和实现。我阅读的gzip版本为 gzip-1.2.4。下面我们将要对deflate算法做一个分析和说明。

简单介绍一下 gzip 所使用压缩算法的基本原理。gzip 对于要压缩的文件,首先使用LZ77算法的一个变种进行压缩,对得到的结果再使用Huffman编码的方法(实际上gzip根据情况,选择使用静态Huffman编码或者动态Huffman编码,详细内容在实现中说明)进行压缩。所以明白了LZ77算法和Huffman编码的压缩原理,也就明白了gzip的压缩原理。

到此,以上就是小编对于“gzip_php”的问题就介绍到这了,希望介绍关于“gzip_php”的【3】点解答对大家有用。

抱歉,评论功能暂时关闭!