Вход Регистрация
Файл: o5on.ru/start_gzip.php
Строк: 121
<?
/*
** Title.........: PHP4 HTTP Compression Speeds up the Web
** Version.......: 1.20
** Author........: catoc <catoc@163.net>
** Filename......: gzdoc.php
** Last changed..: 18/10/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.
**
**                 Modified by John Lim (jlim@natsoft.com.my)
**                  based on ideas by Sandy McArthur,  Jr
** Usage........:
**                 No space before the beginning of the first '<?' tag.
**                 ------------Start of file----------
**                 |<?
**                 | include('gzdoc.php');
**                 |?>
**                 |<HTML>
**                 |... the page ...
**                 |</HTML>
**                 |<?
**                 | gzdocout();
**                 |?>
**                 -------------End of file-----------
*/
ob_start();
ob_implicit_flush(0);
function 
CheckCanGzip(){
    global 
$HTTP_ACCEPT_ENCODING;
    if (
headers_sent() || connection_aborted()){
        return 
0;
    }
    if (
strpos($HTTP_ACCEPT_ENCODING,  'x-gzip') !== false) return "x-gzip";
    if (
strpos($HTTP_ACCEPT_ENCODING'gzip') !== false) return "gzip";
    return 
0;
}
/* $level = compression level 0-9,  0=none,  9=max */
function GzDocOut($level=3$debug=1){
    
$ENCODING CheckCanGzip();
    if (
$ENCODING){
        
//print "n<!-- Use compress $ENCODING  ";
        
$Contents ob_get_contents();
        
ob_end_clean();
        if (
$debug){
            
$s "<span style="color:#dddddd">Сжатие ".round((100/strlen($Contents)*strlen(gzcompress($Contents, $level))), 0)."%</span>";
            //$Contents .= $s;
            
$s iconv('windows-1251''utf-8'$s);
            
$Contents str_replace("</body>"$s."n</body>",$Contents);
        }
        
header("Content-Encoding: $ENCODING");
        print 
"x1fx8bx08x00x00x00x00x00";
        
$Size strlen($Contents);
        
$Crc crc32($Contents);
        
$Contents gzcompress($Contents$level);
        
$Contents substr($Contents,  0,  strlen($Contents) - 4);
        print 
$Contents;
        print 
pack('V'$Crc);
        print 
pack('V'$Size);
        exit;
    }else{
        
ob_end_flush();
        exit;
    }
}
?>
Онлайн: 1
Реклама