如何使用 bbcode 标记检查内容中的垃圾邮件?
我正在使用 bbcode:
$text=preg_replace("/\[b\](.*?)\[\/b\]/i","<b>\\1</b>", $text);
但是有些人用这个 bb 代码发送垃圾邮件,如下所示:
[b]ww[/b][b]w[/b].[b]ex[/b][b][/b][b]um[/b].[b]c[/b][b]o[/b][b]m[/b]
我有 mysql 数据库存储这个垃圾邮件关键字。但它不会捕获此链接,因为它们使用 bbcode。当内容带有 bbcode 标记时,如何检查内容是否为垃圾邮件?
I am using as a bbcode:
$text=preg_replace("/\[b\](.*?)\[\/b\]/i","<b>\\1</b>", $text);
But some ppl doing spam with this bb code like this:
[b]ww[/b][b]w[/b].[b]ex[/b][b][/b][b]um[/b].[b]c[/b][b]o[/b][b]m[/b]
I have mysql database storing this spam keyword. But it won't catch this link, because they use bbcode. How can I check if the contents is spam when it has bbcode markup?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我建议删除 bbcode 并检查完整的单词。
另外,您可能需要使用 Akismet 来验证帖子不是垃圾邮件。 PEAR 有一个 Akismet 包,它使得服务接口变得非常容易。
I suggest removing the bbcode and checking for the full word.
Also, you might want to use Akismet to verify that posts are not spam. PEAR has a Akismet package which makes interfacing the service very easy.
如果您可以阻止整个帖子/评论(如果它包含垃圾邮件关键字),那么您可以执行此方法(抱歉,这里没有代码):
1)删除所有 bb 代码和其他格式(例如 html,如果存在)
2)使用纯文本
If it is OK for you to block whole post/comment if it has spam keyword, then you can do this approach (sorry, no code here):
1) remove all bb codes and other formatting (e.g. html, if present)
2) work with plain text