measure('pagegen'); $do=(defined('_gzip_zip_encode')?_gzip_zip_encode:true); if($do){ if($enc=n_obzip::gzipSupport()){ $level=(defined('_gzip_zip_level')?_gzip_zip_level:9); $speed=(defined('_gzip_linespeed')?_gzip_linespeed:14336); if(defined('_gzip_reporting')||$reportOverride)if(constant('_gzip_reporting')==true ||$reportOverride){ $cnt=ob_get_contents(); $psize=strlen($cnt); $_gzip_n_benchmark->start('compress'); $asize=strlen(gzcompress($cnt,$level)); $ctime=$_gzip_n_benchmark->format('micro','compress'); $save=sprintf("%01.2f",100-(($asize/$psize)*100)); $tsave=sprintf("%01.2f",100-(((($asize/$speed)+$elapsed)/(($psize/$speed)+$elapsed))*100)); $pfsize=sprintf("%01.2f",$psize/1024)."KB"; $afsize=sprintf("%01.2f",$asize/1024)."KB"; $sfsize=sprintf("%01.2f",($psize-$asize)/1024)."KB"; echo "Level {$level} GZIP (Page Generation: ".n_benchmark::format('s',$elapsed)." Compression Time: {$ctime})
Download Size From {$pfsize} To {$afsize} Saving {$sfsize} ({$save}%)
Download Speed: From ".n_benchmark::format('s',($psize/$speed)+$elapsed)." To ".n_benchmark::format('s',($asize/$speed)+$elapsed)." Saving ".n_benchmark::format('s',(($psize/$speed)+$elapsed)-(($asize/$speed)+$elapsed))." ({$tsave}%) assuming download speed at ".sprintf("%01.2f",$speed/1024)."KB/s"; } $cnt=ob_get_contents(); ob_end_clean(); $size = strlen($cnt); $crc=crc32($cnt); $cnt = gzcompress($cnt, $level); $cnt = substr($cnt, 0, strlen($cnt)-4); $out="\x1f\x8b\x08\x00\x00\x00\x00\x00".$cnt.pack("V",$crc).pack("V",$size); header("Content-encoding: ".$enc);header("Content-length: ".strlen($out));echo $out; ob_end_flush(); } if(!$continue)exit; }else{ if(defined('_gzip_reporting')||$reportOverride)if(constant('_gzip_reporting')==true ||$reportOverride){ echo "($enc) Gzip Not Supported"; } ob_end_flush(); if(!$continue)exit; } } /** * n_obzip::gzipSupport() * * Test for gZip Support * * @return */ function gzipSupport() { global $_gzip_n_benchmark; if(defined('_gzip_reporting'))if(!$_gzip_n_benchmark->exists('pagegen'))$_gzip_n_benchmark->start('pagegen'); @ini_set("zlib.output_compression","0"); if(ini_get("zlib.output_compression")>0)return false; if(defined('_gzip_discontinued'))return false; if(!function_exists("gzcompress")){echo 'function not found'; return false;} if(defined("_gzip"))if(_gzip==false)return false; if(strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'x-gzip') !== false) return "x-gzip"; if(strpos($_SERVER['HTTP_ACCEPT_ENCODING'],'gzip') !== false) return "gzip"; return false; } } /** * n_benchmark * * @comment $Id: n_obzip.php 541 2008-12-11 07:35:22Z nemesarial $ * @package Travel2 * @author Nemesarial * @copyright 2008 * @version $Id: n_obzip.php 541 2008-12-11 07:35:22Z nemesarial $ * @access public * @todo upgrade this class to php 5+ */ $_gzip_n_benchmark=new n_benchmark(); ?>