验证敏感字

function checkProhibit($str = '')
{
    if (empty($str)) return $str;
    //创建一个新的字符串来做为返回值
    $n_str = '';
    //获取敏感字集
    $prohibitList = model('Admin/ProhibitData')->getProhibitList();
    if (empty($prohibitList)) {
        return true;
    }
    //遍历敏感字
    foreach ($prohibitList as $key => $val) {
        //如果存在敏感字,判断敏感等级
        if (strrpos($str, $val['pd_text']) !== false && $val['pd_state'] != 2) {
            $grade = $val['sorts']['ps_grade'];
            switch ($grade) {
                //如果是一级,直接返回false,并提示
                case 1:
                    $data = ['bol' => false, 'msg' => '存在敏感字符,["' . $val['pd_text'] . '"]'];
                    return $data;
                    break;
                //如果是不是级,将替换内容
                case 2:
                    $str = str_ireplace($val['pd_text'], $val['pd_replace'], $str);
                    break;
                //如果是3级,判断出现次数
                case 3:
                    if (substr_count($str, $val['pd_text']) >= 3) {
                        $data = ['bol' => false, 'msg' => '存在敏感字符,\"' . $val['pd_text'] . '""]过多。'];
                        return $data;
                        break;
                    }
            }
        }
    }
    return $str;
}

猜你喜欢

转载自blog.csdn.net/Mr_Yanghao/article/details/82221444