首页 > 后端开发 > php教程 > 使用 php4 加速 web 传输_php基础

使用 php4 加速 web 传输_php基础

WBOY
发布: 2016-05-17 09:44:38
原创
1144 人浏览过

/****************************************
** 标题...... ..: PHP4 HTTP 压缩加速 Web
** 版本.......: 1.10
** 作者........: catoc
** 文件名......: gzdoc.php
** 最后更改..: 25/08/2000
** 要求...: PHP4 >= 4.0.1
** PHP 配置为--with-zlib[=DIR]
** 注.........: 动态内容加速压缩
** 动态传输数据
** Sun jin 的代码hu (catoc)
** 自 1998/1999 年以来,大多数较新的浏览器都
** 已配备支持 HTTP 1.1
** 称为“内容编码”的标准。
** 本质上,浏览器向
** 服务器表明它可以接受“内容编码”
**,如果服务器有能力,它将
** 压缩数据并传输它。
** 浏览器对其进行解压缩,然后呈现
** 页面。
** 用法........:
** 第一个 '' 开头之前没有空格标签。 ' tag.
** ------------文件开头----------
** |
** |包括('gzdoc.php');
** | print "开始输出!!";
** |?>
** |
** |...页面...
** |
** |
* * | gzdocout();
** |?>
** -------------文件结束---------
******** ***********************************/
ob_start();
ob_implicit_flush(0);
函数 GetHeader(){
$headers = getallheaders();
while (list($header, $value) = every($headers)) {
$Message .= "$header: $value
n";
}
返回 $Message;
}
函数 CheckCanGzip(){
全局 $HTTP_ACCEPT_ENCODING, $PHP_SELF, $Wget, $REMOTE_ADDR, $S_UserName;
if (connection_timeout() || connection_aborted()){
返回 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('
','',GetHeader());
$Error_Msg .= "时间: ".date("Y-m-d H:i:s")."n";
$Error_Msg .= "远程地址: ".$REMOTE_ADDR."n";
//mail('your@none.net', "用户在文件 $PHP_SELF 中有 x-gzip 输出!!!", $Error_Msg);
}其他{
$ENCODING = "gzip";
}
返回$ENCODING;
}否则{
返回 0;
}
}
function GzDocOut(){
全局 $PHP_SELF, $CatocGz, $REMOTE_ADDR, $S_UserName;
$ENCODING = CheckCanGzip();
if ($ENCODING){
print "nn";
$Contents = ob_get_contents();
ob_end_clean();
if ($CatocGz == 'Y'){
print "不压缩长度: ".strlen($Contents)."
";
print "压缩长度: ".strlen(gzcompress($Contents))."
";
退出;
}else{
header("内容编码:$ENCODING");
}
打印包('cccccccc',0x1f,0x8b,0x08,0x00,0x00,0x00,0x00,0x00);
$Size = strlen($Contents);
$Crc = crc32($Contents);
$Contents = gzcompress($Contents);
$Contents = substr($Contents, 0, strlen($Contents) - 4);
打印$Contents;
打印包('V',$Crc);
打印包('V',$Size);
退出;
}其他{
ob_end_flush();
$Error_Msg = str_replace('
','',GetHeader());
$Error_Msg .= "时间: ".date("Y-m-d H:i:s")."n";
$Error_Msg .= "远程地址: ".$REMOTE_ADDR."n";
//mail('your@none.net', "用户不能在文件 $PHP_SELF 中使用 gzip 输出!!!", $Error_Msg);
退出;
}
}
?>




来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板