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

本博启用了一个叫wp super cache的页面压缩工具,

源代码没有去查看,不过原理很简单。

我们可以自己动手书写一个压缩脚本。

清除换行符,清除制表符,去掉注释标记 。它所起到的作用不可小视。

现提供PHP 压缩HTML函数。请大家不妨试试看,感觉还不错吧。

不废话了,直接上代码:

/**

* 压缩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标签的内容进行正则,再按先后循序进行合并保存,插入到页面的末尾。

最终的效果如下:

这是我的首页压缩效果:

2a16824d6e7cc5c8116daf04cda66721.png

页尾效果:

c222e403a5c8c427edad157264775bfe.png

打开其中的链接,内容是已经压缩好了的js脚本。

php正则表达式过滤空格 换行符 回车

我整理了几个比较适合的实例了,对于它们我们是有很多站长都测试过并用过了,不过文章最后我的总结也是生重要的哦,至于原因我也说不上了,因为chr是ascii编码了所以有时浏览器会自动转成ascii,特别像 ...

java 去html标签,去除字符串中的空格,回车,换行符,制表符

public static String getonerow(String allLine,String myfind)     {                           Pattern ...

robotframework之去除空格、去掉前面的0、增加空格换行符的方法,两个字符之间的拼接

1.去除空格 A)若需要去除两个拼接字符之间的空格,可以使用robotframework中的关键词Catenate,需要注意的是SEPARATOR=一定需要大写 B)若在一个字符串中存在空格,且需要去 ...

【去除NSString 字符串中的空格换行符】

@interface NSString (DeletWhiteSpace) // 返回一个去掉前后空格的字符串或者下划线,如果自己是一个nil 返回@“” - (NSString *)trimming ...

SQL:指定名称查不到数据的衍伸~空格 换行符 回车符的批量处理

异常处理汇总-数据库系列  http://www.cnblogs.com/dunitian/p/4522990.html 先看看啥情况 复制查询到的数据,粘贴一下看看啥情况 那就批量处理一下~ 就这样 ...

mysql去掉空格换行符

http://blog.csdn.net/gt219/article/details/52038382

java去除字符串的空格,换行符,水平制表符,回车

final private String stringTrimAll(final String input) { if (null == input) return ""; // ...

PHP清除HTML代码、空格、回车换行符的函数

清除HTML代码.空格.回车换行符的函数如下 function DeleteHtml($str) { $str = trim($str); $str = strip_tags($str,"& ...

THINKPHP 清除HTML注释、换行符、空格、制表符等

thinkphp3.2 3.2中取消了配置文件中的 'TMPL_STRIP_SPACE' 属性,所以我们先来修改:\ThinkPHP\Library\Think\Template.class.php ...

随机推荐

快速入门系列--JMeter压测工具

今天的年会已过,仍然是空手而归,不过俺坚信能让生活稳定永远都是努力.由于隔壁组负责年会的抢红包项目,因而趁此机会把通过工具模拟高并发的知识补了补,通过和身边大师的交流,总算是对压力测试有了个简要的了解 ...

Codeforces Round #291 (Div. 2)

A 题意:给出变换规则,单个数字t可以变成9-t,然后给出一个数,问最小能够变成多少. 自己做的时候理解成了不能输出前导0,但是题目的本意是不能有前导0(即最高位不能是0,其余位数按照规则就好) 55 ...

tpl + ccr

不是非此即彼的场景.如下混合使用CCR+TPL的代码说明问题:It's not an either/or scenario.You can intermix CCR and TPL code like ...

POJ 3352 Road Construction (边双连通分量)

题目链接 题意 :有一个景点要修路,但是有些景点只有一条路可达,若是修路的话则有些景点就到不了,所以要临时搭一些路,以保证无论哪条路在修都能让游客到达任何一个景点 思路 :把景点看成点,路看成边,看要 ...

POJ 3468 A Simple Problem with Integers(树状数组区间更新)

A Simple Problem with Integers Time Limit: 5000MS   Memory Limit: 131072K Total Submissions: 97217   ...

(NO.00005)iOS实现炸弹人游戏(七):游戏数据的序列化表示

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 用plist列表文件来表示游戏数据 因为在这个炸弹人游戏中有很多 ...

Python 入门:基本语法

对于多数从其他编程语言转入Python的来说,或多或少会有些不习惯.如果沿用其他编程语言的语法来写Python代码,那么碰壁是不可避免的了. 本文是基于我看了两个小时的官方文档(Python 2.7 ...

使用反射修改final属性

情型1:static final属性,无法修改其值. package m5.d7; import java.lang.reflect.Field; public class FieldTest { p ...

介绍一个axios调试好用的工具:axios-mock-adapter

上一篇文章中写到用promise时应注意的问题,这一篇文章继续介绍一个可以和axios库配合的好工具: axios-mock-adapter.axios-mock-adapter可以用来拦截http请 ...

volatile的深入理解--【sky原创】

volatile 所有定义的变量都是在内存上面的,  例如: int i = 10; int j = i; int k = i;   i = 10; 是初始化的变量,存放在数据段,未初始化的变量存放在 ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值