Просмотр файла gzip.php

Размер файла: 1.28Kb
<?php
ob_start(); 
ob_implicit_flush(0); 
// Проверка возможности использования алгоритма сжатия
function CheckCanGzip(){
   global $HTTP_ACCEPT_ENCODING; 
    if (headers_sent() || connection_timeout() || 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; 
 } 

// Процедура сжатия 
function GzDocOut($level=1,$debug=0){ 
    $ENCODING = CheckCanGzip(); 
   if ($ENCODING){ 
    print "\n\n";
    $Contents = ob_get_contents();
    ob_end_clean(); 
    if ($debug){ 
    $s = " 
Длина без сжатия: ".strlen($Contents); 
    $s .= "
Длина с сжатием: ".strlen(gzcompress($Contents,$level));
    $Contents .= $s; 
   }
    header("Content-Encoding: $ENCODING"); 
    print "\x1f\x8b\x08\x00\x00\x00\x00\x00"; 
    $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;
   } 
} 
?>