e23ewe 发表于 2014-4-19 21:51:29

PHP压缩html网页代码原理(清除空格,换行符,制表符,注释标记)

本博启用了一个叫wp super cache的页面压缩工具,
源代码没有去查看,不过原理很简单。
我们可以自己动手书写一个压缩脚本。清除换行符,清除制表符,去掉注释标记 。它所起到的作用不可小视。
现提供PHP 压缩HTML函数。请大家不妨试试看,感觉还不错吧。不废话了,直接上代码:<?php/** * 压缩html : 清除换行符,清除制表符,去掉注释标记 * @param $string * @return 压缩后的$string * */function compress_html($string) {    $string = str_replace("\r\n", '', $string); //清除换行符    $string = str_replace("\n", '', $string); //清除换行符    $string = str_replace("\t", '', $string); //清除制表符    $pattern = array(      "/> *([^ ]*) *</", //去掉注释标记      "/[\s]+/",      "/<!--[^!]*-->/",      "/\" /",      "/ \"/",      "'/\*[^*]*\*/'"    );    $replace = array(      ">\\1<",      " ",      "",      "\"",      "\"",      ""    );    return preg_replace($pattern, $replace, $string);}?>如上的代码只是进行了简单的替换操作,但真正的HTML页面压缩还不只是如此。对于一个前端开发毕竟有经验的程序员来说,一般习惯是把js文件放置在body中内容的最后面,
这样对于加载速度来说,会更快的显示我们的页面,但缺陷是,我们的绑定事件可能会失效。
所以我们还需要对页面的所有的js代码进行整理合并,并写入一个文件当中。
这样的话,我们还需要在页面输出之前,对html代码进行匹配检索,把所有符合js标签的内容进行正则,再按先后循序进行合并保存,插入到页面的末尾。最终的效果如下:这是我的首页压缩效果:

页尾效果:

打开其中的链接,内容是已经压缩好了的js脚本。
页: [1]
查看完整版本: PHP压缩html网页代码原理(清除空格,换行符,制表符,注释标记)