本文主要是讲一个过滤html或其他文本中多余换行,并保留其原有缩进规则的php正则表达式,这段表达式是我在做现有的我的博客中外链自助功能中网站快照用到的,目的就是过滤掉文本中多余的换行,让文件更小更规范,并且可以让数据库更小。我因为是在做一个网站的时候做的这个功能,因为是美工扒的别人的网站,但是里面有大量的多余换行,原来文件有8000多行,过滤后只有900多行,并且保持了代码的缩进。

其实这个正则表达式就是为了规范简化代码用的,用他过滤后可以保证代码的缩进和层次规则,并且能够正常的运行,而过滤掉多余的换行,让代码执行更快,也让文件更小。这个表达式的原理很简单,弄的我还各种百度、谷歌,但是发现网上的都是些不好用的正则,要么是把所有空白符都替换了,让整个代码成了一行,要么就是根本不起作用,达不到优化代码的目的,后来还是查手册吧,正则看似复杂,其实只要你先考虑清楚要怎么匹配字符,只要这个考虑清楚,就可以通过手册组合你的构思就可以了。

那么这个正则的原理就是匹配“以换行符结尾的所有空白字符”,因为换行符也属于空白字符,那么这样就会留下换行符后面有其他非空白字符的字符,而把所有不是以换行符结尾的空白字符都替换为空。代码就是:

preg_replace(“/\s+\r/”,”", $file);

可以利用这个功能,做个优化代码文件的小功能,将代码读入,然后过滤一下,再写入。或者是在做网站之前,先用这个功能,将美工给的模板代码等优化一下。是不是很好用啊。

正则是个很牛叉的东东,好好学习,可以让你的思维增加很多出路!

程序本天成,妙手偶得之!我们只是代码的搬运工!

转载请注明:http://www.521php.com/archives/1243/

发表评论

昵称:

网址:

eg.博客主题调用的是Gravatar头像,你可以通过邮箱注册获得头像.
/ 快捷键:Ctrl+Enter