首页 » PHP笔记 » destoon压缩html输出 压缩页面大小

destoon压缩html输出 压缩页面大小

高蒙 2016/02/02 10:14 2.0k浏览 0评论 DestoonCMS


项目中用destoon二次开发的时候,有新的需求就是要将destoon的模版解析输出之后,在压缩网页大小。去除掉多余的空格,空行等。这样做的好处是将页面的大小压缩很小,保证在相同的网速下,打开网页的速度更快。

注意:

    1、压缩网页的时候,最好将js、jquery抽出去,不然在压缩网页的时候,可能会出现报错,不执行。

    2、压缩成一行之后,可以稍微的提高菜鸟仿站的难度。

下面我们来修改destoon的文件:

处理模板文件 template()函数。

文件地址 :/include/global.func.php

    function template($template = 'index', $dir = '') {...}

    里面函数 template_compile();

文件地址:/include/template.func.php

 function template_compile($from, $to) {} 

 里面调用 函数template_parse()。 

 function template_parse($str) {
     $str = preg_replace("~>\s+<~", "><",preg_replace("~>\s+\r\n~", ">", $str));
     //$str = ltrim(rtrim(preg_replace(array("/> *([^ ]*) *</","//","'/\*[^*]*\*/'","/\r\n/","/\n/","/\t/",'/>[ ]+</'),array(">\\1<",'','','','','','><'),$str)));
     return $str;
 }

这里有两种压缩html代码的方式。

第一种:只压缩html代码,不压缩js,jq中的空行,换行等。

$str = preg_replace("~>\s+<~", "><",preg_replace("~>\s+\r\n~", ">", $str));

压缩之后的结果显示,除了js,jq的代码除外,其他的代码都是一行。

第二种:只要是页内的代码全部的压缩,包括js、jq。

$str = ltrim(rtrim(preg_replace(array("/> *([^ ]*) *</","//","'/\*[^*]*\*/'","/\r\n/","/\n/","/\t/",'/>[ ]+</'),array(">\\1<",'','','','','','><'),$str)));

压缩之后的结果就是一行,不管js、jq。

这里要是页面中的js、jq都已经抽出去之后,可以使用第二种方式,这样压缩的更加的彻底。要是页面中的js、jq没有抽取干净的话,我建议还是采用第一种方式只压缩网页中除了js、jq以外的html元素。



相关文章

我有话说

站长昵称:(*)

输入内容:

选个头像:

评论列表

    ...

    高蒙

    男, PHP程序猿

    文章

    485

    标签

    42

    热度

    10w+

    南京, 江苏, 中国

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