<?php 
 
 
/* 
V5.18 3 Sep 2012  (c) 2000-2012 John Lim (jlim#natsoft.com). All rights reserved. 
         Contributed by Ross Smith ([email protected]).  
  Released under both BSD license and Lesser GPL library license. 
  Whenever there is any discrepancy between the two licenses, 
  the BSD license will take precedence. 
      Set tabs to 4 for best viewing. 
 
*/ 
 
if (!function_exists('gzcompress')) { 
    trigger_error('gzip functions are not available', E_USER_ERROR); 
    return 0; 
} 
 
/* 
*/ 
class ADODB_Compress_Gzip { 
    /** 
     */ 
    var $_level = null; 
 
    /** 
     */ 
    var $_min_length = 1; 
 
    /** 
     */ 
    function getLevel() { 
        return $this->_level; 
    } 
 
    /** 
     */ 
    function setLevel($level) { 
        assert('$level >= 0'); 
        assert('$level <= 9'); 
        $this->_level = (int) $level; 
    } 
 
    /** 
     */ 
    function getMinLength() { 
        return $this->_min_length; 
    } 
 
    /** 
     */ 
    function setMinLength($min_length) { 
        assert('$min_length >= 0'); 
        $this->_min_length = (int) $min_length; 
    } 
 
    /** 
     */ 
    function ADODB_Compress_Gzip($level = null, $min_length = null) { 
        if (!is_null($level)) { 
            $this->setLevel($level); 
        } 
 
        if (!is_null($min_length)) { 
            $this->setMinLength($min_length); 
        } 
    } 
 
    /** 
     */ 
    function write($data, $key) { 
        if (strlen($data) < $this->_min_length) { 
            return $data; 
        } 
 
        if (!is_null($this->_level)) { 
            return gzcompress($data, $this->_level); 
        } else { 
            return gzcompress($data); 
        } 
    } 
 
    /** 
     */ 
    function read($data, $key) { 
        return $data ? gzuncompress($data) : $data; 
    } 
 
} 
 
return 1; 
 
?>
 
 |