首页 » PHP笔记 » thinkphp如何压缩html页面输出,提升网页打开速度

thinkphp如何压缩html页面输出,提升网页打开速度

高蒙 2016/09/19 11:26 3.5k浏览 0评论 Thinkphp


在前面的thinkphp如何压缩html页面的文章中介绍了thinkphp压缩页面输出的方法,但是,我觉得扩展性不强,有点死板。由于进一步的学习,这次我重新的修改了代码,让页面压缩更加的灵活方便。自由配置页面压缩的等级。

我这里设置为三个等级。

第一种:不压缩页面,就是默认的。

第二种:保留压缩页面,保留页面中js,css,jq的部分不压缩。适合页面中嵌套许多js,jq,css的朋友。(推荐)

第三种:全部压缩页面。毫无保留的全部压缩页面。


好了,介绍了上面的三种模式,那我们看怎么去实现。

第一步:我们要分别的修改两个类文件。

分别为\ThinkPHP\Library\Think\View.class.php\ThinkPHP\Library\Think\Controller.class.php

1、\ThinkPHP\Library\Think\View.class.php 代码如下:


//@param int $type   是否压缩输出的模版 默认 不压缩 1 保留压缩  2 全部压缩
public function display($templateFile='',$charset='',$contentType='',$content='',$prefix='',$type) {
        G('viewStartTime');
        // 视图开始标签
        Hook::listen('view_begin',$templateFile);
        // 解析并获取模板内容
        $content = $this->fetch($templateFile,$content,$prefix);
        if($type == 1){
            // 第一种:将页面压缩html标签 js jq保留。
            $content = preg_replace("~>\s+<~","><",preg_replace("~>\s+\r\n~",">",$content));
        }
        if($type == 2){
            // 第二种:将页面全部压缩
            $content = ltrim(rtrim(preg_replace(array("/> *([^ ]*) *</","//","'/\*[^*]*\*/'","/\r\n/","/\n/","/\t/",'/>[ ]+</'),array(">\\1<",'','','','','','><'),$content)));
        }
        // 输出模板内容
        $this->render($content,$charset,$contentType);
        // 视图结束标签
        Hook::listen('view_end');
    }

2、\ThinkPHP\Library\Think\Controller.class.php 代码如下:


protected function display($templateFile='',$charset='',$contentType='',$content='',$prefix='',$type=0) {
        $this->view->display($templateFile,$charset,$contentType,$content,$prefix,$type);
    }

第二步:控制器渲染模板时的调用。

$this->display('','','','','',1);

由于系统默认有几个参数,我们就给空即可,只要在最后的参数上加上我们想要的压缩页面模式即可。

结语:

我的博客已经进行了页面的压缩了,感兴趣的朋友可以点击右键查看源代码即可。由于文章的内容页有展示的代码,所以我采用的是保留性的压缩页面方式。心动的朋友赶紧试试吧。





相关文章

我有话说

站长昵称:(*)

输入内容:

选个头像:

评论列表

    ...

    高蒙

    男, PHP程序猿

    文章

    487

    标签

    42

    热度

    10w+

    南京, 江苏, 中国

    人生要是没有理想, 那跟咸鱼有什么分别。