请原谅我的noob-iness!
我有一个$ string,想看看它是否包含任何一个或多个单词,单词链接c t,fu ,sl ** ETC.所以我想我能做到:
if(stristr("$input", "dirtyword1"))
{
$input = str_ireplace("$input", "thisWillReplaceDirtyWord");
}
elseif(stristr("$input", "dirtyWord1"))
{
$input = str_ireplace("$input", "thisWillReplaceDirtyWord2");
}
... ETC。但是,我不想继续做if if / elseif / elseif / elseif / elseif ...
我不能只是做一个switch语句或者有一个数组,然后简单地说出像?:
$dirtywords = { "f***", "c***", w****", "bit**" };
if(stristr("$input", "$dirtywords"))
{
$input = str_ireplace("$input", "thisWillReplaceDirtyWord");
}
我很感激任何帮助
谢谢
答案 0 :(得分:3)
$dirty = array("fuc...", "pis..", "suc..");
$censored = array("f***", "p***", "s***");
$input= str_ireplace($dirty, $censored , $input);
注意,您不必检查stristr()来执行str_ireplace()
答案 1 :(得分:0)
http://php.net/manual/en/function.str-ireplace.php
如果搜索和替换是数组,则str_ireplace()从每个数组中获取一个值,并使用它们对主题进行搜索和替换。如果replace的值小于search,则空字符串将用于其余的替换值。如果search是一个数组而replace是一个字符串,那么这个替换字符串将用于搜索的每个值。
答案 2 :(得分:0)
肯定不是最好的解决方案,因为我不太了解PHP,但是循环呢?
foreach (array("word1", "word2") as $word)
{
if(stristr("$input", $word))
{
$input = str_ireplace("$input", $word" "thisWillReplaceDirtyWord");
}
}
如果要测试多个对象,请考虑“循环”; - )