注册 登录  
 加关注

网易博客网站关停、迁移的公告:

将从2018年11月30日00:00起正式停止网易博客运营
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

xiaozhuge0825的博客

 
 
 

日志

 
 

传输的内 加快传输  

2009-06-03 11:48:08|  分类: php |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

Example 6. 加快传输

/*
** Title.........: PHP4 HTTP Compression Speeds up the Web
** Version.......: 1.20
** Author........: catoc
** Filename......: gzdoc.php
** Last changed..: 18/10/2000
** Requirments...: PHP4 >= 4.0.1
** PHP was configured with --with-zlib[=DIR]
** Notes.........: Dynamic Content Acceleration compresses
** the data transmission data on the fly
** code by sun jin hu (catoc)
** Most newer browsers since 1998/1999 have
** been equipped to support the HTTP 1.1
** standard known as "content-encoding."
** Essentially the browser indicates to the
** server that it can accept "content encoding"
** and if the server is capable it will then
** compress the data and transmit it. The
** browser decompresses it and then renders
** the page.
**
** Modified by John Lim (jlim@natsoft.com.my)
** based on ideas by Sandy McArthur, Jr
** Usage........:
** No space before the beginning of the first ' ** ------------Start of file---------
-
** │ ** │ include('gzdoc.php');
** │? >
** │
** │... the page ...
** │
** │ ** │ gzdocout();
** │? >
** -------------End of file-----------
*/
ob_start();
ob_implicit_flush(0);
function CheckCanGzip(){
global HTTP_ACCEPT_ENCODING;
if (headers_sent() ││ connection_timeout() ││ connection_aborted()){
return 0;
}
if (strpos(HTTP_ACCEPT_ENCODING, 'x-gzip') !== false) return "x-gzip";
if (strpos(HTTP_ACCEPT_ENCODING,'gzip') !== false) return "gzip";
return 0;
}
/* level = compression level 0-9, 0=none, 9=max */
function GzDocOut(level=1,debug=0){
ENCODING = CheckCanGzip();
if (ENCODING){
print "\n\n";
Contents = ob_get_contents();
ob_end_clean();
if (debug){
s = "

Not compress length: ".strlen(Contents);
s .= "
Compressed length: ".strlen(gzcompress(Contents,level));
Contents .= s;
}
header("Content-Encoding: ENCODING");
print "\x1f\x8b\x08\x00\x00\x00\x00\x00";
Size = strlen(Contents);
Crc = crc32(Contents);
Contents = gzcompress(Contents,level);
Contents = substr(Contents, 0, strlen(Contents) - 4);
print Contents;
print pack('V',Crc);
print pack('V',Size);
exit;
}else{
ob_end_flush();
exit;
}
}
?>

这是catoc的一段很早以前的代码,是在weblogs.com看到的,他利用了zlib的函数,对传输的内
容进行了压缩,测试表明,对于10k以上的页面,会产生效果,而且页面越大,效果越明显

  评论这张
 
阅读(90)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018