zl程序教程

您现在的位置是:首页 >  云平台

当前栏目

使用php4加速网络传输

网络 使用 加速 传输 php4
2023-06-13 09:13:44 时间
标题:使用php4加速网络传输。

<?
/***************************************
**Title.........:PHP4HTTPCompressionSpeedsuptheWeb
**Version.......:1.10
**Author........:catoc<catoc@163.net>
**Filename......:gzdoc.php
**Lastchanged..:25/08/2000
**Requirments...:PHP4>=4.0.1
**                 PHPwasconfiguredwith--with-zlib[=DIR]
**Notes.........:DynamicContentAccelerationcompresses
**                 thedatatransmissiondataonthefly
**                 codebysunjinhu(catoc)<catoc@163.net>
**                 Mostnewerbrowserssince1998/1999have
**                 beenequippedtosupporttheHTTP1.1
**                 standardknownas"content-encoding."
**                 Essentiallythebrowserindicatestothe
**                 serverthatitcanaccept"contentencoding"
**                 andiftheserveriscapableitwillthen
**                 compressthedataandtransmitit.The
**                 browserdecompressesitandthenrenders
**                 thepage.
**Useage........:
**                 Nospacebeforethebeginningofthefirst"<?"tag
.
**                 ------------Startoffile----------
**                 |<?
**                 |include("gzdoc.php");
**                 |print"Startoutput!!";
**                 |?>
**                 |<HTML>
**                 |...thepage...
**                 |</HTML>
**                 |<?
**                 |gzdocout();
**                 |?>
**                 -------------Endoffile-----------
***************************************/
ob_start();
ob_implicit_flush(0);
functionGetHeader(){
        $headers=getallheaders();
        while(list($header,$value)=each($headers)){
                $Message.="$header:$value<br>";
        }
        return$Message;
}
functionCheckCanGzip(){
        global$HTTP_ACCEPT_ENCODING,$PHP_SELF,$Wget,$REMOTE_ADDR,  
$S_UserName;
        if(connection_timeout()||connection_aborted()){
                return0;
        }
        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-dH:i:s")."
";
                        $Error_Msg.="Remote-Address:".$REMOTE_ADDR.
"";
                        //mail("your@none.net","Userhavex-gzipoutp
utinfile$PHP_SELF!!!",$Error_Msg);
                }else{
                        $ENCODING="gzip";
                }
                return$ENCODING;
        }else{
                return0;
        }
}
functionGzDocOut(){
        global$PHP_SELF,$CatocGz,$REMOTE_ADDR,$S_UserName;
        $ENCODING=CheckCanGzip();
        if($ENCODING){
                print"<!--Usecompress$ENCODING-->";
                $Contents=ob_get_contents();
                ob_end_clean();
                if($CatocGz=="Y"){
                        print"Notcompresslenth:".strlen($Contents)
."<BR>";
                        print"Compressedlenth:".strlen(gzcompress($
Contents))."<BR>";
                        exit;
                }else{
                        header("Content-Encoding:$ENCODING");
                }
                printpack("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;
                printpack("V",$Crc);
                printpack("V",$Size);
                exit;
        }else{
                ob_end_flush();
                $Error_Msg=str_replace("<br>","",GetHeader());
                $Error_Msg.="Time:".date("Y-m-dH:i:s")."";
                $Error_Msg.="Remote-Address:".$REMOTE_ADDR."";
                //mail("your@none.net","Usercannotusegzipoutput  
infile$PHP_SELF!!!",$Error_Msg);
                exit;
        }
}
?>