我正在尝试检查域名是否包含列入黑名单的单词。到目前为止,我的代码是
function teststringforbadwords($string,$banned_words) {
foreach($banned_words as $banned_word) {
if(stristr($string,$banned_word)){
return false;
}
}
return true;
}
$banned_words= array("casino","payday","prescription");
if (teststringforbadwords("casino123.com",$banned_words)) {
echo "banned word found";
continue;
}
以上代码适用于casino.com
但不适用于casino123.com
,我们将不胜感激。
注意:这不重复提到的问题只检查1个单词,我在这里检查单词数组。
答案 0 :(得分:4)
条件恰恰相反,应该是:
foreach($banned_words as $banned_word) {
if(stristr($string,$banned_word) !== false){
return true;
}
}
return false;
答案 1 :(得分:0)
我认为你的逻辑是倒退的。如果找到被禁止的单词,你想返回true,对吗?
if(stristr($string,$banned_word)){
return true;
}
...因为,当你打电话给你说的功能时:
if(teststringforbadwords("casino123.com",$banned_words)){
echo "banned word found";
}