前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP压缩html页面

PHP压缩html页面

作者头像
Sindsun
发布2019-12-06 17:45:35
8.1K0
发布2019-12-06 17:45:35
举报
文章被收录于专栏:狂码一生

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

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

代码语言:javascript
复制
    /**
     * 处理数据
     * @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、在页面公共部分或者你需要使用页面压缩的模块设置一个宏变量进行标记,我的如下

代码语言:javascript
复制
    //设置开启页面压缩,true为开启页面压缩,false相反
    define('IS_PAGE_ZIP', false);

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-09-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档