过滤替换文章内的敏感词或字

        //接收关键词
        $str = input('words');
        $txt = ComType::field('title,times,id')->select();
        //得到所有的过滤词
        if (count($txt) > 0) {
            foreach ($txt as $w) {
                $k[] = $w['title'];
            }
        }
        //获取数组
        foreach ($k as $key => $val) {
            //去空格
            $val = trim($val);
            //正则过滤
            preg_match('/' . $val . '/', $str, $matches);
            //替换掉敏感词
            if (!empty($matches[0])) {
                $str =  str_replace($val, "***", $str);
            }
            //收集所有的敏感词
            $m[] = $matches;
        };
        //判断是否存在敏感词
        $r = strpos($str, '*');
        if ($r != false || $r == 0) {
            //统计匹配次数
            if ($m) {
                foreach ($m as $i) {
                    if ($i) {
                        $t = ComType::where('title', $i[0])->find();
                        if ($t) {
                            ComType::where('id', $t['id'])->update(['times' => $t['times'] + 1]);
                        }
                    }
                }
            }
            return json(['code' => 1, 'data' => $str, 'msg' => "评论中含有敏感字或词"]);
        } else {

            return json(['code' => 2, 'data' => '', 'msg' => "评论中无敏感词或字"]);
        }
    }

 

转载于:https://www.cnblogs.com/kissmy/p/10450004.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值