*([^ ]*) *">
狂码一生_优质编程技术资源与您共享

狂码一生_优质编程技术资源与您共享

狂码一生技术博客站主要是以优质编程技术资源共享为核心,以交流学习为目的搭建的在线平台。我们共享一些优质的资源出来,供同行业的同胞交流与学习,让彼此之间在自身的技术上得到提升,本站主要提供程序方面的资源给大家,像PHP,C++,Javascript,html,asp.net,数据库等等方面的资源,本站计划将在后期会不断完善,建设更多类目的资源,希望能得到更多同行的支持!

PHP压缩html页面

将html页面压缩之后,可以大大提升页面的加载速度,下面的压缩代码去掉了页面中的所有空格、注释、制表符、换行符等等比较多余的字符,下面的代码是写以在thinkphp5中为例的,不过在他PHP程序是通用的,也可以进行自定义的扩展。


1、找到thinkphp5框架中的框架View类(/think/library/response/View.php),修改类中的output方法,代码如下:

    /**
     * 处理数据
     * @access protected
     * @param mixed $data 要处理的数据
     * @return mixed
     */
    protected function output($data)
    {
        // 渲染模板输出
        $outputHtml = ViewTemplate::instance(Config::get('template'), Config::get('view_replace_str'))
            ->fetch($data, $this->vars, $this->replace);
        
        /* 自定义页面压缩,下面这段代码对PHP通用,可以进行自定义扩展封装
         * 如果要使用压缩,请将IS_PAGE_ZIP定义在公共加载的文件中
         * */
        if(defined('IS_PAGE_ZIP') && IS_PAGE_ZIP){
            $outputHtml = str_replace("\r\n", '', $outputHtml); //清除换行符
            $outputHtml = str_replace("\n", '', $outputHtml); //清除换行符
            $outputHtml = str_replace("\t", '', $outputHtml); //清除制表符
            $pattern = [
                "/> *([^ ]*) *</", //去掉注释标记
                "/[\s]+/",
                "/<!--[^!]*-->/",
                "/\" /",
                "/ \"/",
                "'/\*[^*]*\*/'"
            ];
            $replace = [
                ">\\1<",
                " ",
                "",
                "\"",
                "\"",
                ""
            ];
            $outputHtml = preg_replace($pattern, $replace, $outputHtml);
            $outputHtml = eval('?>'.preg_replace("/;*\s*\?>/", "; ?>", str_replace('<?=', '<?php echo ', $outputHtml)));
        }
        
        return $outputHtml;
    }


2、在页面公共部分或者你需要使用页面压缩的模块设置一个宏变量进行标记,我的如下 

    //设置开启页面压缩,true为开启页面压缩,false相反
    define('IS_PAGE_ZIP', false);


3、最后压缩后的效果如下图:

QQ截图20180916034138.jpg

版权声明: 此文为本站源创文章[或由本站编辑从网络整理改编],
转载请备注出处: [
狂码一生 ] http://www.sindsun.coms=/article-details-88.html
[若此文确切存在侵权,请联系本站管理员进行删除!]

评论