linux社区爱心援助Linux认证系列教程业界动态站务新闻公司招聘建议留言网址大全LPI专题CISCO专题
设为首页
加入收藏
管理团队
JSP  
JAVA  
PERL  
 您的位置:首页 > 开发语言 > php >
栏目导栏
  php
  JSP
  ASP
  asp.net
  JAVA
  c/c++/c#
  perl
  JavaScript
  Basic
  Delphi
资料搜索
热门文章
·PHP无限分类与树型论坛的实现方
·PHP生成静态页面的一些经验
·PHP入门速成
·入门级PHP程序员面试题
·vim的代码折叠
·php5学习笔记
·织梦CMS中文转换拼音函数研究
·PHP 和 MySQL初学入门
·文件下载统计php编程代码
·Windows下Apache+Tomcat+MySQL
·如何建立自己的新闻发布系统
·生成sessionid和随机密码的例子
·PHP初学者头疼问题总结
·使用无限生命期Session的方法
·Cookie及其使用详细介绍
最新文章
·BluePage通用分页类助开发者提
·PHP入门速成
·用php实现广告轮播
·Zend Optimizer 问题浅析
·功能强大的CGI语言----PHP3
·用Session对Web页面进行保护
·PHP--进行模块化设计
·如何将PHP的结果输出到非PHP页
·如何开发一个虚拟域名系统
·PHP4调用自己编写的COM组件
·简单的页面缓冲技术(三)
·简单的页面缓冲技术(二)
·简单的页面缓冲技术(一)
·用Socket发送电子邮件(二)
·用Socket发送电子邮件(一)
Google
 
使用php4加速网络传输
[ 作者:  加入时间:2008-02-14 13:24:06  来自:Linux联盟收集整理 ]
来源:catoc
  
   <?
  /***************************************
  ** Title.........: PHP4 HTTP Compression Speeds up the Web
  ** Version.......: 1.10
  ** Author........: catoc <catoc@163.net>
  ** Filename......: gzdoc.php
  ** Last changed..: 25/08/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) <catoc@163.net>
  ** 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.
  ** Useage........:
  ** No space before the beginning of the first '<?' tag
  .
  ** ------------Start of file----------
  ** |<?
  ** | include('gzdoc.php');
  ** | print "Start output !!";
  ** |?>
  ** |<HTML>
  ** |... the page ...
  ** |</HTML>
  ** |<?
  ** | gzdocout();
  ** |?>
  ** -------------End of file-----------
  ***************************************/
  ob_start();
  ob_implicit_flush(0);
  function GetHeader(){
  $headers = getallheaders();
  while (list($header, $value) = each($headers)) {
  $Message .= "$header: $value<br> ";
  }
  return $Message;
  }
  function CheckCanGzip(){
  global $HTTP_ACCEPT_ENCODING, $PHP_SELF, $Wget, $REMOTE_ADDR,
  $S_UserName;
  if (connection_timeout() || connection_aborted()){
  return 0;
  }
  if ((strpos('catoc'.$HTTP_ACCEPT_ENCODING, 'gzip')) || $Wget =
  = 'Y'){
  if (strpos('catoc'.$HTTP_ACCEPT_ENCODING, 'x-gzip')){
  
  $ENCODING = "x-gzip";
  $Error_Msg = str_replace('<br>','',GetHeader()
  );
  $Error_Msg .= "Time: ".date("Y-m-d H:i:s")."
  ";
  $Error_Msg .= "Remote-Address: ".$REMOTE_ADDR.
  " ";
  //mail('your@none.net', "User have x-gzip outp
  ut in file $PHP_SELF!!!", $Error_Msg);
  }else{
  $ENCODING = "gzip";
  }
  return $ENCODING;
  }else{
  return 0;
  }
  }
  function GzDocOut(){
  global $PHP_SELF, $CatocGz, $REMOTE_ADDR, $S_UserName;
  $ENCODING = CheckCanGzip();
  if ($ENCODING){
  print " <!-- Use compress $ENCODING --> ";
  $Contents = ob_get_contents();
  ob_end_clean();
  if ($CatocGz == 'Y'){
  print "Not compress lenth: ".strlen($Contents)
  ."<BR>";
  print "Compressed lenth: ".strlen(gzcompress($
  Contents))."<BR>";
  exit;
  }else{
  header("Content-Encoding: $ENCODING");
  }
  print pack('cccccccc',0x1f,0x8b,0x08,0x00,0x00,0x00,0x
  00,0x00);
  $Size = strlen($Contents);
  $Crc = crc32($Contents);
  $Contents = gzcompress($Contents);
  $Contents = substr($Contents, 0, strlen($Contents) - 4
  );
  print $Contents;
  print pack('V',$Crc);
  print pack('V',$Size);
  exit;
  }else{
  ob_end_flush();
  $Error_Msg = str_replace('<br>','',GetHeader());
  $Error_Msg .= "Time: ".date("Y-m-d H:i:s")." ";
  $Error_Msg .= "Remote-Address: ".$REMOTE_ADDR." ";
  //mail('your@none.net', "User can not use gzip output
  in file $PHP_SELF!!!", $Error_Msg);
  exit;
  }
  }
  ?> 
  
Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
无相关信息