检查域名是否包含某些单词

check if domain name contains certain words

我正在尝试检查域名是否包含黑名单 words.Below 是我目前的代码

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 个单词,我在这里检查单词数组。

条件正好相反,应该是:

foreach($banned_words as $banned_word) {
    if(stristr($string,$banned_word) !== false){
        return true;
    }
}
return false;

我认为你的逻辑是倒退的。如果找到禁用词,你想 return 为真,对吗?

if(stristr($string,$banned_word)){
return true;
}

...因为,当您调用函数时,您会说:

if(teststringforbadwords("casino123.com",$banned_words)){
echo "banned word found";
}