<?
/***************************************
** 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>\n";
}
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")."\n";
$error_msg .= "remote-address: ".$remote_addr."\n";
//mail(your@none.net, "user have x-gzip output 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 "\n<!– use compress $encoding –>\n";
$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,0x00,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")."\n";
$error_msg .= "remote-address: ".$remote_addr."\n";
//mail(your@none.net, "user can not use gzip output in file $php_self!!!", $error_msg);
exit;
}
}
?>
使用 php 4 加速 web 传输-PHP教程,PHP应用
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 使用 php 4 加速 web 传输-PHP教程,PHP应用
相关推荐
-      PHP源码-利用 QQWry.Dat 实现 IP 地址高效检索
-      Php高手带路–问题汇总解答[2]
-      PHPQQ编程(2):取QQ在线状态
-      php5手动最简安装方法
-      福利彩票幸运号码自动生成器
-      PHP开发利器-PRADO 1.6
-      在Apache 服务器上启用PHP支持
-      Windows2000_pro下安装Apache+PHP4+My