zlib扩大完成页面GZIP压缩输出,PHP开启gzip页面压缩实例代码

要落到实处GZIP压缩页面供给浏览器和服务器共同支撑,实际上便是服务器压缩,传到浏览器后浏览器解压并深入分析。浏览器那边无需大家忧郁,因为明天天津大学学部分浏览器都支持分析GZIP过的页面。大家假若把页面在劳务器端压缩再出口到浏览器就行了。

GZIP(GNU-ZIP)是一种压缩技艺。经过GZIP压缩后页面大小能够成为原本的伍分一竟然更加小。那样用户浏览的时候就能够以为很爽很喜欢!
要兑现GZIP压缩页面须要浏览器和服务器共同支撑,实际上正是服务器压缩,传到浏览器后浏览器解压并深入分析。浏览器那边没有供给我们顾忌,因为以往繁多浏览器都帮助深入分析GZIP过的页面。大家只要把页面在劳务器端压缩再出口到浏览器就行了。

要贯彻GZIP压缩页面必要浏览器和服务器共同协理,实际上正是服务器压缩,传到浏览器后浏览器解压并深入分析。浏览器那边不必要大家顾虑,因为今后超越五成浏览器都补助分析GZIP过的页面。大家假设把页面在服务器端压缩再出口到浏览器就行了。
稍许罗嗦,上边说正事:
正如要制作压缩饼干,先要获得原材质,要减小贰个页面,首先要获得要出口的内容。PHP中的ob_start()(ob
=> output
buffer)函数能够实现那些功用,它可以把程序里希图输出的剧情先松开多少个名字为“缓冲区”的地点,当然,你能够知晓为构建压缩饼干的临时放原料的职业台。
这么些函数一定要在页面输出此前运用,所以一般把它座落代码的最最上部。因为它就好像二个职业台,所以您要在原材质到来在此以前将在谋算好它,不然原料来了没位贮存,会出难题的。用ob_start()获得要减小的页面之后,大家就能够创设压缩饼干了,不对,应该是足以缩短页面了!然则好像还相当不足一台压缩机,
EZ,我们用PHP带的zlib扩张做一台:

有一点点罗嗦,上边说正事:

多少罗嗦,上面说正事:
正如要制作压缩饼干,先要拿到原料,要缩减七个页面,首先要获得要出口的剧情。PHP中的ob_start()(ob
=> output
buffer)函数能够完毕这一个效应,它能够把程序里筹划输出的开始和结果先放置三个名称叫“缓冲区”的地点,当然,你能够驾驭为塑造压缩饼干的有时放原料的职业台。
其一函数要求求在页面输出此前运用,所以一般把它座落代码的最顶部。因为它就如一个专门的工作台,所以您要在原材料到来在此之前就要计划好它,不然原料来了没位寄存,会出难点的。用ob_start()获得要缩小的页面之后,咱们就足以制作压缩饼干了,不对,应该是能够削减页面了!不过好像还紧缺一台压缩机,EZ,我们用PHP带的zlib扩充做一台:

复制代码 代码如下:

正如要制作压缩饼干,先要获得原料,要收缩多少个页面,首先要拿走要出口的原委。PHP中的ob_start()(ob
=> output
buffer)函数能够完结那么些功能,它能够把程序里策动输出的开始和结果先松手一个誉为“缓冲区”的地方,当然,你能够知晓为营造压缩饼干的暂时放原料的工作台。
以此函数一定要在页面输出以前运用,所以一般把它投身代码的最下边。因为它就好像二个职业台,所以您要在原质地到来从前将在希图好它,不然原料来了没地点放,会出难点的。用ob_start()获得要削减的页面之后,大家就能够制作压缩饼干了,不对,应该是足以收缩页面了!然而好像还贫乏一台压缩机,
EZ,大家用PHP带的zlib扩展做一台:

 

function ob_gzip($content) // $content
便是要降低的页面内容,可能说饼干原料
{
if( !headers_sent() && // 假使页面尾部新闻还尚无出口
extension_loaded(“zlib”) && // 并且zlib扩充已经加载到PHP中
strstr($_SERVER[“HTTP_ACCEPT_ENCODING”],”gzip”))
//而且浏览器说它尚可GZIP的页面
{
$content = gzencode($content.” \n//此页已调整和减弱”,9);
为计划压缩的剧情贴上“//此页已缩减”的注脚标签,然后用zlib提供的gzencode()函数实行品级为9的滑坡,这几个参数值范围是0-9,0代表无压缩,9意味着最大滑坡,当然压缩程度越高越费CPU。
//然后用header()函数给浏览器发送一些头顶新闻,告诉浏览器那几个页面已经用GZIP压缩过了!
header(“Content-Encoding: gzip”);
header(“Vary: Accept-Encoding”);
header(“Content-Length: “.strlen($content));
}
return $content; //重回压缩的从头到尾的经过,只怕说把裁减好的饼干送回专业台。
}

复制代码 代码如下:

function ob_gzip($content) // $content
正是要削减的页面内容,只怕说饼干原料
{    
    if(    !headers_sent() && // 假如页面尾部消息还尚无出口
        extension_loaded(“zlib”) && // 并且zlib扩大已经加载到PHP中
        strstr($_SERVER[“HTTP_ACCEPT_ENCODING”],”gzip”))
//並且浏览器说它基本上能用GZIP的页面
    {
        $content = gzencode($content.” \n//此页已压缩”,9);
为准备压缩的剧情贴上“//此页已回降”的笺注标签,然后用zlib提供的gzencode()函数推行等第为9的减少,那个参数值范围是0-9,0表示无压缩,9表示最大滑坡,当然压缩程度越高越费CPU。
        
        //然后用header()函数给浏览器发送一些尾部消息,告诉浏览器这么些页面已经用GZIP压缩过了!
        header(“Content-Encoding: gzip”);
        header(“Vary: Accept-Encoding”);
        header(“Content-Length: “.strlen($content));
    }
    return $content;
//重回压缩的原委,大概说把减掉好的饼干送回职业台。
}

压缩机做好了以往,大家把压缩机放到职业台上,于是原本的ob_start()变成
ob_start(‘ob_gzip’);
//没错,就是给ob_start()加八个参数,参数名就是大家刚刚做的“压缩机”的函数名。那样当内容进入缓冲区后PHP就能够调用ob_gzip函数把它减弱了。
好了,全数的做事已到位,最终交货:
ob_end_flush();
//停止缓冲区,输出内容。当然,不用这几个函数也行,因为程序试行到最后会自动将缓冲区内容输出。
总体的亲自去做如下:

function ob_gzip($content) // $content
就是要缩减的页面内容,或然说饼干原料
{
if( !headers_sent() && // 假使页面底部新闻还从未出口
extension_loaded(“zlib”) && // 何况zlib扩张已经加载到PHP中
strstr($_必发365游戏官方网址,SERVER[“HTTP_ACCEPT_ENCODING”],”gzip”))
//何况浏览器说它能够承受GZIP的页面
{
$content = gzencode($content.” \n//此页已减弱”,9);
为计划压缩的内容贴上“//此页已缩减”的笺注标签,然后用zlib提供的gzencode()函数施行等级为9的回落,这么些参数值范围是0-9,0意味着无压缩,9意味着最大压缩,当然压缩程度越高越费CPU。

压缩机做好了未来,我们把压缩机放到工作台上,于是原本的ob_start()变成

复制代码 代码如下:

//然后用header()函数给浏览器发送一些头部新闻,告诉浏览器这一个页面已经用GZIP压缩过了!
header(“Content-Encoding: gzip”);
header(“Vary: Accept-Encoding”);
header(“Content-Length: “.strlen($content));
}
return $content; //再次回到压缩的内容,可能说把减掉好的饼干送回专门的学业台。
}

 

<?php
//启用四个包括ob_gzip压缩机的专门的工作台
ob_start(‘ob_gzip’);
//计划一些待压缩的剧情
for($i=0; $i<100; $i )
{
echo(‘这里是压缩饼干的原料,这里是压缩饼干的原质地,原料’);
}
//输出压缩成果
ob_end_flush();
//这是ob_gzip压缩机
function ob_gzip($content)
{
if( !headers_sent() &&
extension_loaded(“zlib”) &&
strstr($_SERVER[“HTTP_ACCEPT_ENCODING”],”gzip”))
{
$content = gzencode($content.” \n//此页已回降”,9);
header(“Content-Encoding: gzip”);
header(“Vary: Accept-Encoding”);
header(“Content-Length: “.strlen($content));
}
return $content;
}
?>

压缩机做好了今后,大家把压缩机放到职业台上,于是原本的ob_start()变成

ob_start(‘ob_gzip’);
//没错,就是给ob_start()加一个参数,参数名就是我们刚刚做的“压缩机”的函数名。那样当内容步入缓冲区后PHP就能够调用ob_gzip函数把它收缩了。

透超过实际际测量检验,上面代码中只要不用GZIP,是4.69KB=4802.56B,启用GZIP后减弱为104B
,呃……笔者数学只怕不佳,本身算下压缩到了原本的百分之多少呢。。
另外,上边是用FlashGet获取的日记音信,能够见到大家先后里加的header音信:

ob_start(‘ob_gzip’);
//没错,就是给ob_start()加三个参数,参数名正是大家刚刚做的“压缩机”的函数名。那样当内容进入缓冲区后PHP就能够调用ob_gzip函数把它减弱了。
好了,全体的办事已到位,最终交货:

好了,全体的职业已成功,最终交货:

复制代码 代码如下:

ob_end_flush();
//结束缓冲区,输出内容。当然,不用那么些函数也行,因为程序推行到最后会活动将缓冲区内容输出。
一体化的以身作则如下:

 

Fri Jan 25 17:53:10 2008 HTTP/1.1 200 OK
Fri Jan 25 17:53:10 2008 Server: Microsoft-IIS/5.1
Fri Jan 25 17:53:10 2008 Date: Fri, 25 Jan 2008 09:53:10 GMT
Fri Jan 25 17:53:10 2008 Connection: close
Fri Jan 25 17:53:10 2008 X-Powered-By: PHP/5.2.5
Fri Jan 25 17:53:10 2008 Content-Encoding: gzip
Fri Jan 25 17:53:10 2008 Vary: Accept-Encoding
Fri Jan 25 17:53:10 2008 Content-Length: 104
Fri Jan 25 17:53:10 2008 Content-type: text/html

复制代码 代码如下:

ob_end_flush();
//截止缓冲区,输出内容。当然,不用这几个函数也行,因为程序施行到结尾会活动将缓冲区内容输出。

示例一(用php的嵌入压缩函数):

<?php
//启用三个富含ob_gzip压缩机的职业台
ob_start(‘ob_gzip’);
//准备一些待压缩的剧情
for($i=0; $i<100; $i++)
{
echo(‘这里是压缩饼干的原料,这里是压缩饼干的原材料,原料’);
}
//输出压缩成果
ob_end_flush();
//这是ob_gzip压缩机
function ob_gzip($content)
{
if( !headers_sent() &&
extension_loaded(“zlib”) &&
strstr($_SERVER[“HTTP_ACCEPT_ENCODING”],”gzip”))
{
$content = gzencode($content.” \n//此页已回退”,9);

完整的演示如下:

复制代码 代码如下:

header(“Content-Encoding: gzip”);
header(“Vary: Accept-Encoding”);
header(“Content-Length: “.strlen($content));
}
return $content;
}
?>

 

<?PHP
if(Extension_Loaded(‘zlib’)) Ob_Start(‘ob_gzhandler’);
Header(“Content-type: text/html”);
?>
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“;
<html xmlns=”;
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=gb2312″
/>
<title>无标题文书档案</title>
</head>
<body>
<?php
for($i=0;$i<10000;$i++){
echo ‘Hello World!’;
}
?>
</body>
</html>
<?PHP
if(Extension_Loaded(‘zlib’)) Ob_End_Flush();
?>

透超过实际际测量检验,上面代码中一经不用GZIP,是4.69KB=4802.56B,启用GZIP后减少为104B
,呃……小编数学可能倒霉,自身算下压缩到了原来的百分之多少吧。。

<?php
//启用多少个包罗ob_gzip压缩机的事业台
ob_start(‘ob_gzip’);
//希图一些待压缩的源委
for($i=0; $i<100; $i++)
{
    echo(‘这里是压缩饼干的原料,这里是压缩饼干的原材料,原料’);
}
//输出压缩成果
ob_end_flush();
//这是ob_gzip压缩机
function ob_gzip($content)
{    
    if(    !headers_sent() &&
        extension_loaded(“zlib”) &&
        strstr($_SERVER[“HTTP_ACCEPT_ENCODING”],”gzip”))
    {
        $content = gzencode($content.” \n//此页已缩减”,9);
        
        header(“Content-Encoding: gzip”);
        header(“Vary: Accept-Encoding”);
        header(“Content-Length: “.strlen($content));
    }
    return $content;
}
?>

示例二(自写函数):

除此以外,上面是用FlashGet获取的日志音信,能够看来大家先后里加的header新闻:

透超过实际际测量检验,上边代码中假若不用GZIP,是4.69KB=4802.56B,启用GZIP后裁减为104B
必发365游戏官方网址 1
,呃……作者数学恐怕倒霉,本身算下压缩到了本来的百分之多少吗。。必发365游戏官方网址 2

复制代码 代码如下:

复制代码 代码如下:

别的,下边是用FlashGet获取的日记新闻,能够观望大家先后里加的header音讯:

<?php ob_start(‘ob_gzip’); ?>
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“;
<html xmlns=”;
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=gb2312″
/>
<title>无标题文书档案</title>
</head>
<body>
</body>
</html>
<?php
ob_end_flush();
//压缩函数
function ob_gzip($content){
if(!headers_sent()&&extension_loaded(“zlib”)&&strstr($_SERVER[“HTTP_ACCEPT_ENCODING”],”gzip”)){
$content = gzencode($content,9);
header(“Content-Encoding: gzip”);
header(“Vary: Accept-Encoding”);
header(“Content-Length: “.strlen($content));
}
return $content;
}
?>

Fri Jan 25 17:53:10 2008 HTTP/1.1 200 OK
Fri Jan 25 17:53:10 2008 Server: Microsoft-IIS/5.1
Fri Jan 25 17:53:10 2008 Date: Fri, 25 Jan 2008 09:53:10 GMT
Fri Jan 25 17:53:10 2008 Connection: close
Fri Jan 25 17:53:10 2008 X-Powered-By: PHP/5.2.5
Fri Jan 25 17:53:10 2008 Content-Encoding: gzip
Fri Jan 25 17:53:10 2008 Vary: Accept-Encoding
Fri Jan 25 17:53:10 2008 Content-Length: 104
Fri Jan 25 17:53:10 2008 Content-type: text/html

QUOTE:

你可能感兴趣的作品:

  • PHP
    zlib扩展完结页面GZIP压缩输出
  • php轻巧开启gzip压缩方法(zlib.output_compression)
  • linux服务器安装PHP扩张zip,zlib方法
  • 将PHP程序中回到的JSON格式数据用gzip压缩输出的不二秘籍
  • php gzip压缩输出的落实格局
  • 决定PHP的出口:缓存并裁减动态页面
  • 研究怎么着在PHP开启gzip页面压缩实例
  • php
    判别页面或图片是或不是通过gzip压缩的不二秘籍
  • PHP使用zlib扩充实现GZIP压缩输出的法子详解

你恐怕感兴趣的稿子:

  • php简单开启gzip压缩方法(zlib.output_compression)
  • linux服务器安装PHP扩张zip,zlib方法
  • 将PHP程序中回到的JSON格式数据用gzip压缩输出的方法
  • php gzip压缩输出的贯彻格局
  • PHP开启gzip页面压缩实例代码
  • 垄断(monopoly)PHP的出口:缓存并压缩动态页面
  • 深究怎么样在PHP开启gzip页面压缩实例
  • php
    剖断页面或图片是或不是由此gzip压缩的办法
  • PHP使用zlib扩张达成GZIP压缩输出的诀窍详解

Fri Jan 25 17:53:10 2008 HTTP/1.1 200 OK
Fri Jan 25 17:53:10 2008 Server: Microsoft-IIS/5.1
Fri Jan 25 17:53:10 2008 Date: Fri, 25 Jan 2008 09:53:10 GMT
Fri Jan 25 17:53:10 2008 Connection: close
Fri Jan 25 17:53:10 2008 X-Powered-By: PHP/5.2.5
Fri Jan 25 17:53:10 2008 Content-Encoding: gzip
Fri Jan 25 17:53:10 2008 Vary: Accept-Encoding
Fri Jan 25 17:53:10 2008 Content-Length: 104
Fri Jan 25 17:53:10 2008 Content-type: text/html

相关文章

发表评论

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

*
*
Website