我目前正在编写一个脚本来过滤我收到的一些电子邮件内容。
这些电子邮件是对我的简报活动的回复,我想知道谁想要取消订阅。为此,我可以寻找一些特定的词,如“请”,“删除”,我还必须检查电子邮件是否是从邮件程序守护程序发送的,这样我就可以提醒用户更改他的电子邮件地址下次他登录。
首先,我必须从MySQL数据库中检索字典,此时它包含77个单词,然后我为每个处理的邮件中的每个单词调用两个preg_match_all函数。
我想检查是否可以在电子邮件内容中看到整个单词\bplease\b
,有些人可能会犯错误并将单词写成“pleease”,然后我使用\bp+l+e+a+s+e+\b
之后。
但是词典正在成长,内部添加的词越来越多,脚本越来越慢,每秒至少处理4封电子邮件。
你还有其他方法可以比现在更快地处理邮件吗?
构建匹配77个字的正则表达式而不是执行77个preg_match_all命令会更快吗?
答案 0 :(得分:2)
对于你的问题,“构建匹配77个字而不是执行77个preg_match_all命令的正则表达式会更快吗?”我建议不要使用正则表达式。我可能是错的,但我认为字符串函数比正则表达式更快。阅读本文:http://www.webdeveloper.com/forum/showthread.php?190485-performance-doubts-regex-vs-string-functions-using-this-and-1-more-doubt!-plz!-)另请阅读此Which is more efficient, PHP string functions or regex in PHP?