直接输出原始的HTML内容会非常的大,当前页面如果不进行html去除空格和换行以及注释,会导致完整页面有120k。当处理完换行注释之后还有86k,但是用zlib处理完gzip后!整个页面大小只剩下18k了,效果非常的有效!
/** * 输出内容 * @param $key */ public function outHtml( $html) { if (empty($html)) { return ; } if (Extension_Loaded('zlib')) Ob_Start('ob_gzip'); echo $html; if (Extension_Loaded('zlib')) Ob_End_Flush(); exit; } /** * 压缩输出方法 gzip压缩函数 * @param $content mixed 要压缩的页面内容 */ function ob_gzip($content) { if (!headers_sent() && // 如果页面头部信息还没有输出 extension_loaded("zlib") && // 而且zlib扩展已经加载到PHP中 strstr($_SERVER["HTTP_ACCEPT_ENCODING"], "gzip")) { //而且浏览器说它可以接受GZIP的页面 //为准备压缩的内容贴上"此页已压缩"的注释标签,然后用zlib提供的gzencode()函数执行级别为9的压缩,这个参数值范围是0-9,0表示无压缩,9表示最大压缩,当然压缩程度越高越费CPU. $content = gzencode($content . " 此页已压缩", 9); //然后用header()函数给浏览器发送一些头部信息,告诉浏览器这个页面已经用GZIP压缩过了! header("Content-Encoding: gzip"); header("Vary: Accept-Encoding"); header("Content-Length: " . strlen($content)); } return $content; //返回压缩的内容 }
关键字词: