为了账号安全,请及时绑定邮箱和手机立即绑定

只返回错误的

只返回错误的

PHP
德玛西亚99 2022-09-17 21:30:33
我正在制作一个坏词过滤器,如果字符串中有一个坏词,则返回 true。但事实是,无论用户编写什么代码,都会返回 false。我已经尝试将 的参数转换为字符串(以防万一),但仍然如此。我试过stripos()preg_match()"/$word/i", $_POST['message']这是我的检查函数: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贡献1850条经验 获得超11个赞

默认情况下,返回的字符串在每行末尾包含换行符。因此,以换行符结尾,并且仅当坏词位于行尾时才会匹配。file()$word

使用该标志删除换行符。FILE_IGNORE_NEW_LINES

$bannedwords = file("bannedwords", FILE_IGNORE_NEW_LINES);

一旦找到匹配项,您也应该打破循环,无需继续检查其他单词。


查看完整回答
反对 回复 2022-09-17
  • 1 回答
  • 0 关注
  • 84 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号