phpDocumentor PHPShopInc
[ class tree: PHPShopInc ] [ all elements ]

Source for file gzip.inc.php

Documentation is available at gzip.inc.php

  1. <?
  2. /**
  3.  * Проверка заголовка
  4.  * @package PHPShopInc
  5.  * @return mixed
  6.  */
  7. function CheckCanGzip(){
  8.     global $HTTP_ACCEPT_ENCODING;
  9.     if (headers_sent(|| connection_aborted()){
  10.         return 0;
  11.     }
  12.    if (strpos($_SERVER["HTTP_ACCEPT_ENCODING"],'x-gzip'!== falsereturn "x-gzip";
  13.    if (strpos($_SERVER["HTTP_ACCEPT_ENCODING"],'gzip'!== falsereturn "gzip";
  14.     return 0;
  15. }
  16. /**
  17.  * Компресия
  18.  * @package PHPShopInc
  19.  * @param int $level compression level 0-9
  20.  * @param bool $debug вывод информации по сжатию
  21.  */
  22. function GzDocOut($level,$debug){
  23.     $ENCODING CheckCanGzip();
  24.     if ($ENCODING){
  25.         print "<!-- Use compress $ENCODING -->";
  26.         $Contents ob_get_contents();
  27.         ob_end_clean();
  28.         if ($debug){
  29.             $s "<center><font style='color:#C0C0C0;font-size:9px;font-family:tahoma'>Not compress length: ".strlen($Contents)."; ";
  30.             $s .= "Compressed length: ".strlen(gzcompress($Contents,$level))."</font></center>";
  31.             $Contents .= $s;
  32.         }
  33.         header("Content-Encoding$ENCODING");
  34.         print "\x1f\x8b\x08\x00\x00\x00\x00\x00";
  35.         $Size strlen($Contents);
  36.         $Crc crc32($Contents);
  37.         $Contents gzcompress($Contents,$level);
  38.         $Contents substr($Contents0strlen($Contents4);
  39.         print $Contents;
  40.         print pack('V',$Crc);
  41.         print pack('V',$Size);
  42.         exit;
  43.     }else{
  44.         ob_end_flush();
  45.         exit;
  46.     }
  47. }
  48. ?>

Documentation generated on Mon, 25 Jun 2012 15:09:46 +0400 by phpDocumentor 1.4.3