不得不说正则是个十分强大的功能,有了他,让我们处理一些复杂的字符变的得心应手。其实所谓的程序无非都是对字符的处理,我之前也提到过,无非都是对字符的操作,所以,会了正则,会让你在做程序开发时多了一条很便捷的途径。这里我其实也用到了用正则匹配文章中的url,进行提取域名。

因为有很多网站的文章都是拷贝的各个其他网站上的,所以有的时候里面会有一些导出链接,可能会影响网站的权重,所以,我们要对发布的文章进行一下过滤。我在这里以织梦的文章发布为例来做的。因为有些链接也是不能过滤的,比如一些自己网站的链接,或一些自己必要的外部链接。所以,我们用正则匹配文章中的url,然后提取出域名,根据域名判断是否要替换,我们可以将外部链接的链接去掉,也就是将a标签去掉。而只留下之间的部分就可以了。下面看一下代码。

将这段代码加到织梦的文章发布处理文件article_add.php的$body = AnalyseHtmlBody($body,$description,$litpic,$keywords,’htmltext’);提取摘要之前就可以了。这里面用到了正则的断言。来屏蔽了一些不必要的匹配。这个正则匹配出来三部分,第一部分是整个链接,第二部分是域名,第三部分是去掉a标签后的部分。所以我们遍历第二部分,是指定的可以发布的域名就结束本次循环,如果不是,就将对应的第一部分替换为对应的第三部分。替换因为不是复杂的匹配,所以用php自带的替换就可以了,正则虽然很方便,但是他比较耗费资源,如果可以,尽量使用php自带的函数来操作。这样就可以实现将一些外部链接替换掉了!

本文链接:http://www.521php.com/archives/433/

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

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

目前有1 条留言

  1. 2013年03月27日 上午 11:24 Ashley   |  引用  |  #1     

    厉害!

发表评论

昵称:

网址:

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