【发布时间】:2011-03-31 11:00:07
【问题描述】:
请原谅我的菜鸟!
我有一个$string,想看看它是否包含一组单词中的任何一个或多个,单词link ct, fu, sl** ETC。所以我想我可以这样做:
if(stristr("$input", "dirtyword1"))
{
$input = str_ireplace("$input", "thisWillReplaceDirtyWord");
}
elseif(stristr("$input", "dirtyWord1"))
{
$input = str_ireplace("$input", "thisWillReplaceDirtyWord2");
}
...等。但是,我不想继续做 if/elseif/elseif/elseif/elseif...
我不能只做一个 switch 语句或有一个数组,然后简单地说类似的东西吗?:
$dirtywords = { "f***", "c***", w****", "bit**" };
if(stristr("$input", "$dirtywords"))
{
$input = str_ireplace("$input", "thisWillReplaceDirtyWord");
}
如果有任何帮助,我将不胜感激
谢谢
【问题讨论】:
-
你为什么要引用变量?
-
因为这就是我在 php 手册网站上学会做 stristr 的方式:php.net/manual/en/function.stristr.php :)
-
基本上,任何对坏词过滤的尝试都是徒劳的。只需通过字母变化,我就可以轻松地通过任何半个$$ed 过滤器。如果这是一项可以完成的任务,那么就不会再有 V1agra 垃圾邮件了。分析整个文本并给它一个淫秽等级,如果它超过阈值,则根本不要显示它。
-
是的,我知道。但是我根本没有因为一份应该付出代价的工作而得到太多报酬。所以,我真的不在乎。他们得到他们所支付的......