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

 Thinkphp   高蒙   阅读(2931)   评论(1)   2016-09-19 11:26:50    thinkphp 压缩页面 压缩html html压缩 


在前面的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);

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

结语:

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





相关文章



我要评论


站长昵称:(*)

输入内容:


评论列表


高蒙

男,程序猿一枚

 

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


关于我

  http://www.shuchengxian.com

高蒙个人博客是以PHP技术为主的程序员个人博客。博客主要发布php开发中遇到的问题以及解决办法,同时个人博客也分享网站模板素材,jquery插件等方面素材。


站点声明:相关侵权、举报、投诉及建议等,请发E-mail:936594075#qq.com(#替换成@)。

Copyright © 2018, www.shuchengxian.com, All rights reserved. 个人博客皖公网安备 34152302000022号 皖ICP备15015490号

关键词:个人博客,PHP博客,PHP博客程序,高蒙博客,高蒙个人博客,php程序员博客,程序员个人博客