我正在制作一個壞詞過濾器,如果字符串中有一個壞詞,則返回 true。但事實(shí)是,無論用戶編寫什么代碼,都會返回 false。我已經(jīng)嘗試將 的參數(shù)轉(zhuǎn)換為字符串(以防萬一),但仍然如此。我試過stripos()preg_match()"/$word/i", $_POST['message']這是我的檢查函數(shù):function MessageBad(){ $BadWord = false; $bannedwords = file("bannedwords"); foreach($bannedwords as $word) { if(stripos($_POST['message'], $word) !== false){ $BadWord = true; } } return $BadWord; }但總是返回假的,即使我只從被禁止的名單中輸入一個壞詞...stripos($_POST['message'], $word) !== false
1 回答

慕蓋茨4494581
TA貢獻(xiàn)1850條經(jīng)驗(yàn) 獲得超11個贊
默認(rèn)情況下,返回的字符串在每行末尾包含換行符。因此,以換行符結(jié)尾,并且僅當(dāng)壞詞位于行尾時(shí)才會匹配。file()
$word
使用該標(biāo)志刪除換行符。FILE_IGNORE_NEW_LINES
$bannedwords = file("bannedwords", FILE_IGNORE_NEW_LINES);
一旦找到匹配項(xiàng),您也應(yīng)該打破循環(huán),無需繼續(xù)檢查其他單詞。
- 1 回答
- 0 關(guān)注
- 80 瀏覽
添加回答
舉報(bào)
0/150
提交
取消