添加到桌面   加入收藏

php使用zlib进行gzip压缩当前输出内容的教程

09-05 14:50 来源: 编辑:  人气:   点评:评论一下 刷新: 刷新文章

直接输出原始的HTML内容会非常的大,当前页面如果不进行html去除空格和换行以及注释,会导致完整页面有120k。当处理完换行注释之后还有86k,但是用zlib处理完gzip后!整个页面大小只剩下18k了,效果非常的有效!

1.png


/**
     * 输出内容
     * @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//返回压缩的内容
    }


[提醒] 转载请保留( 飞猪云教程)文章链接,谢谢!对本文有疑问欢迎留言讨论 ( 我有话说)!
元芳,把你的犀利的看法写到这里可好?
  • 全部评论(0
    还没有评论,快来抢沙发吧!