2010-09-13 112 views
3

可能重复:
How do you implement a good profanity filter?PHP亵渎滤波器的实现

我有一个通过URL我的PHP脚本,然后插入到我的数据库传递一个字符串的iPhone应用程序。我想写一些php代码,读取任何预定义的亵渎语言的$ body。

现在,我只有下面的代码,但它只查找完全匹配,而不是如果$ body包含,则......序列的类型。此外,我需要它用一个空白替换发誓“”,将这个词全部删除。

if($body == "swear word") 
    return; 

回答

2
$swears = array("shoot", "darn", "heck"); 

foreach ($swears as $bad_word) 
    $body = str_replace($bad_word, " ", $body); 

这将作为一个快速和肮脏的解决方案,虽然它确实有Scunthorpe Problem(例如,“克勒”将得到转变为“LER”如果“哎呀”是你的脏话名单) 。

+1

这是一个[clbuttic mistake](http://thedailywtf.com/Articles/The-Clbuttic-Mistake-.aspx);) – 2010-09-13 18:27:11

+0

够正确。为此编辑了某些内容。 – eliah 2010-09-13 18:29:02

+0

是的,我知道斯肯索普问题。你如何使数组不区分大小写? – BigMike 2010-09-13 18:36:31