主页 > 编程资料 > PHP >
发布时间:2018-09-04 作者:apizl 阅读:386次

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

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

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


文章由爱资料原创本文地址:https://www.apizl.com/archives/view-141148-1.html,转载请以链接形式标明本文地址!
关键字词: