博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
敏感字过滤
阅读量:7230 次
发布时间:2019-06-29

本文共 1149 字,大约阅读时间需要 3 分钟。

hot3.png

function filterWords($content,$file='./Public/swords.txt'){
$len = mb_strlen($content);
if($len==0){
return true;
}
        mb_internal_encoding('utf-8');  //内部编码改为utf8
        $keywords=array_unique(explode(',',file_get_contents($file)));
        //按首字分组
        $dict=array();
        foreach($keywords as $keyword){
            if(empty($keyword)){
                continue;
            }
            $key = mb_substr($keyword,0,1); //啊扁推翻
            $dict[$key]['list'][]=$keyword; //dict['啊']['list'][] = '啊扁推翻'
            //dict['啊']['max'] = 4,dict['啊']['max'] 获取字符串最长的
            $dict[$key]['max']=max(isset($dict[$key]['max']) ? $dict[$key]['max'] : 0,mb_strlen($keyword));
        }
        //开始过滤
        // $result='';
        for($i=0;$i<$len;++$i){ //200个字 陈啊扁推翻中共
            $key=mb_substr($content,$i,1);
            if(array_key_exists($key,$dict)){
                $res=mb_substr($content,$i,$dict[$key]['max']);
                $af=0;
                foreach($dict[$key]['list'] as $k=>$keyword){
                    if(mb_strpos($res,$keyword) !==false){
                        $keywordlen=mb_strlen($keyword);
                        $af=$keywordlen-1;
                        // $result .=str_repeat("*",$keywordlen);
                        // break;
                        return false;
                    }elseif($k==0){
                        // $result .= mb_substr($res,0,1);
                    }
                }
                $i+=$af;
            }
            // else{
                // $result .= mb_substr($content,$i,1);
            // }
        }
        // return $result;
        return true;
    }

转载于:https://my.oschina.net/lnmpstudy/blog/164647

你可能感兴趣的文章
问题:关于一个坛友的html布局实现
查看>>
nginx 图片防盗链
查看>>
【SICP练习】109 练习3.22
查看>>
swift - UIWebView 和 WKWebView(iOS12 之后替换UIWebView)
查看>>
tkinter内嵌Matplotlib系列(一)之解读官网教材
查看>>
光伏工商业屋顶 Lora 组网监控方案
查看>>
学号 2017-2018-20172309 《程序设计与数据结构》第10周学习总结
查看>>
命令收集
查看>>
mysql 1449 : The user specified as a definer (\'root\'@\'%\') does not exist 解决方法
查看>>
mysql 定时任务的使用
查看>>
Css实现拖动效果
查看>>
KVO 键值观察者
查看>>
C# 有符号整数 无符号整数
查看>>
第15讲 | 深入区块链技术(七):哈希与加密算法
查看>>
第33讲 | 区块链与供应链(二)
查看>>
scss rem 转换函数
查看>>
Shell脚本中的 测试开关 和 特殊参数
查看>>
Ubuntu下安装Vmware workstation
查看>>
Activity的四种启动模式 分类: Android ...
查看>>
TPS、并发用户数、吞吐量关系
查看>>