您好,欢迎访问一九零五行业门户网

使用 php 4 加速 web 传输

web
/***************************************
** title.........: php4 http compression speeds up the web
** version.......: 1.10
** author........: catoc
** 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)
**                 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 !!;
**                 |?>
**                 |
**                 |... the page ...
**                 |
**                 |
**                 | gzdocout();
**                 |?>
**                 -------------end of file-----------
***************************************/
ob_start();
ob_implicit_flush(0);
function getheader(){
    $headers = getallheaders();
    while (list($header, $value) = each($headers)) {
        $message .= $header: $value
\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('
','',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\n;
        $contents = ob_get_contents();
        ob_end_clean();
        if ($catocgz == 'y'){
            print not compress lenth: .strlen($contents).
;
            print compressed lenth: .strlen(gzcompress($contents)).
;
            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('
','',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;
    }
}
?>
其它类似信息

推荐信息