我正在尝试编写代码,拒绝任何包含坏词的用户名。 无论我做什么 - 我得到"用户名无效。"
$f = @fopen("censor.txt", "r");
$bw = fread($f, filesize("censor.txt"));
$banned_words = explode("\n", $bw);
function teststringforbadwords($wantusername, $banned_words)
{
foreach ($banned_words as $banned_word) {
if (stristr($wantusername, $banned_word)) {
return FALSE;
}
}
return TRUE;
}
if (!teststringforbadwords($wantusername, $banned_words)) {
echo 'string is clean';
} else {
echo('string contains banned words');
$message = "Invalid username.";
}
@fclose($f);
我目前正在学习php,并尝试了一切我能想到的工作 - 帮助!
答案 0 :(得分:8)
该函数工作正常,但是你以不正确的方式调用它,因为如果匹配错误的单词,函数将返回False
:
if( teststringforbadwords( $wantusername, $banned_words ) )
{
echo 'string is clean';
}
else
{
echo('string contains banned words');
$message = "Invalid username.";
}
否则,如果你想保持与函数名的一致性,你必须在函数内反转True
和False
。