makeGzip('./','./toto.gzip'); var_export($test->infosGzip('./toto.gzip')); $test->extractGzip('./toto.gzip', './new/'); **/ function makeGzip($src, $dest=false) { $Gzip = gzencode((strpos(chr(0),$src) ? file_get_contents ($src) : $src), 6); if (empty($dest)) return $Gzip; elseif (file_put_contents($dest, $Gzip)) return $dest; return false; } function infosGzip ($src, $data=true) { $data = $this->extractGzip ($src); $content = array( 'UnCompSize'=>strlen($data), 'Size'=>filesize($src), 'Ratio'=>strlen($data) ? round(100 - filesize($src) / strlen($data)*100, 1) : false,); if ($data) $content['Data'] = $data; return $content; } function extractGzip ($src, $dest=false) { $zp = gzopen( $src, "r" ); $data = ''; while (!gzeof($zp)) $data .= gzread($zp, 1024*1024); gzclose( $zp ); if (empty($dest)) return $data; elseif (file_put_contents($dest, $data)) return $dest; return false; } } ?>