广

PHP编程

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    使用php4加速网络传输

    2018-09-29 11:22:14 次阅读 稿源:互联网
    零七广告
    标 题: 使用php4加速网络传输。

    <?
    /***************************************
    ** 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;
            }
    }
    ?>





    零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。

    零七广告
    零七广告
    零七广告
    零七广告