phpzlib扩展实现页面gzip压缩输出

phpzlib扩展实现页面gzip压缩输出
实现gzip压缩页面,浏览器和服务器需要服务器支持的。事实上,它是服务器压缩,和浏览器解压缩和解析浏览器后传递给浏览器。我们没有必要担心浏览器,因为大多数的浏览器都支持gzip页面解析。我们只是要压缩页面在服务器上,然后输出到浏览器。

有点罗嗦,以下是正确的事:

当你想做一个压缩饼干,你需要得到原材料,压缩页面,首先要得到你所想要的输出。在PHP(ob_start)(OB = >输出缓冲器)可以实现这一功能,它可以将程序的输出缓冲区的内容先放在一个地方,当然,你可以了解工作台把原料制作饼干。
这个函数必须在页面的输出,所以它一般放在代码的顶部,因为它像一个工作台,你原材料到达之前必须准备,否则原料将出的地方,会有一个问题,在使用ob_start()得到压缩页面,可以使我们的压缩饼干,不,应该是压缩的页面!但似乎缺乏一个压缩机,EZ,我们使用zlib扩展PHP做一个:
复制代码代码如下所示:
功能ob_gzip($content) / / $内容页内容压缩原料,或饼干
{
如果(headers_sent) / /如果(!页眉信息不输出
extension_loaded(和 / /)和zlib扩展已经被加载到PHP
strstr($ _server {http_accept_encoding
{
$content = gzencode($内容。 / /本页面已经被压缩,9);对压缩的内容刊登在本页/压缩注释标签,然后由zlib gzencode提供()函数执行9级压缩,参数值在0-9的范围,0表示不压缩,表9显示过程最大,压缩程度越高,压缩成本的CPU。

然后用头 / /()函数浏览器发送头信息,告诉浏览器页面已经用gzip压缩过!
标题(内容编码:gzip );
报头(接受编码);
标题(内容长度:。Strlen(内容));
}
返回$内容;返回压缩内容,或者将压缩的饼干返回工作表。
}

当压缩机,将压缩机在工作台上,使原来的ob_start()改变。

ob_start('ob_gzip '); / /(ob_start)是的,是添加一个参数,参数名是我们刚做的压缩函数名。所以当内容进入缓冲区,PHP调用ob_gzip功能压缩。
好了,所有的工作都完成了,最后的交付是:

(ob_end_flush); / /缓冲,最终输出。当然,你不使用这个功能,因为程序会自动输出缓冲区的内容在程序结束。
完整的例子如下:
复制代码代码如下所示:
< PHP
/ /启用一个ob_gzip压缩机工作表
ob_start('ob_gzip);
准备一些要压缩的内容。
($ i = 0;$ i < 100;$ + +)
{
回声(这是压缩饼干,原材料这是压缩饼干,原材料原材料);
}
输出压缩结果
ob_end_flush();
这是 / / ob_gzip压缩机
功能ob_gzip(内容)
{
如果(!headers_sent()
extension_loaded(和)
strstr($ _server { }http_accept_encoding ,gzip))
{
$content = gzencode($内容。此页面已被压缩

标题(内容编码:gzip );
报头(接受编码);
标题(内容长度:。Strlen(内容));
}
返回$内容;
}
>

经过实际测试,如果上面的代码没有使用gzip,是4.69kb = 4802.56b,Gzip减少104b使用后,嗯…我不擅长数学。我把自己压缩到原来的百分比。

此外,以下是获得FlashGet的日志信息,我们可以在我们的节目上看到标题信息。
复制代码代码如下所示:
1月25日星期五17:53:10 2008 HTTP / 1.1 200 OK
1月25日星期五17:53:10 2008服务器:微软IIS / 5.1
1月25日星期五17:53:10 2008日期:25月2008日星期五,09:53:10 GMT
1月25日星期五17:53:10 2008连接关闭
1月25日星期五17:53:10 2008 x-powered-by:PHP 5.2.5 /
1月25日星期五17:53:10 2008内容编码:gzip
1月25日星期五17:53:10 2008有所不同:接受编码
1月25日星期五17:53:10 2008内容长度:104
1月25日星期五17:53:10 2008内容类型文本/ HTML
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部