寒夜客来酒当茶——绿蚁新醅酒,红泥小火炉。火炉红时汤正沸,你说是酒还是茶? 落葭飞答夜瞳问

公告

最近一切安好,没有什么需要特别交待的。
2009/08/02

所谓无聊——正则表达式

我一向于不忌讳说自己无聊。

Typecho的博客界面高仿Wordpress果然是要付出代价的,连续几天都有垃圾评论。今天似乎特别多。所以专门针对WP的垃圾评论软件同样会对Typecho生效——会不会对其他博客程序生效?好吧,我不知道,因为我不关心。

Typecho里有一个和WP很类似的垃圾评论过滤插件Akismet,研究一看,要网站配的Key,(要申请还得去WP官网——其实这很有些冏的味道。)重要的是我不知道这个评论过滤的逻辑是啥,也不知道一旦网站当了,封了会不会有什么影响……

算了,看了看垃圾评论,决定从邮件上控制一下。因为邮件本来就有校验的,在其中增加点内容就可以了。

最开始写了一版explode+strlen+strpos,测试能行,准备放下去。

看了看原过滤的正则表达式:

preg_match("/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/ix", $str);

天啊,这个表达式直接修改就可以了,根本不需要explode+strlen+strpos。

于是修改成

preg_match("/^([a-z0-9_\-])([a-z0-9_\-\.]{0,10})@(foxmail|126|163|gmail|hotmail|live|msn|oooice|qq|sina|sohu|vip|yahoo)([a-z0-9\-\.])+[a-z]{2,6}$/ix", $str);

很好,现在博客的评论只支持一堆国内用户喜欢的邮件域名加上不超过11倍的用户名,稀奇古怪的E-mail地址就抱歉了。

不知道有没有用。我把改好后的文件上传后就出门了——回来发现多了17条评论,有16条垃圾……不过垃圾评论都是3小时之前,那么这样说来,它似乎停止工作了。

0 评论:

发表评论