安晨末技术博客安晨末技术博客安晨末技术博客

php敏感词(屏蔽词)基于DFA算法过滤详细步骤

这里以thinkphp框架为例

1.下载:https://download.csdn.net/download/mo3408/20062984这个类,解压直接放入extend就行

2.后台页面:

php敏感词(屏蔽词)基于DFA算法过滤详细步骤(图1)

3.我们将后台添加的数据写入txt文件,这里我直接放到public/uploads/下面:

4.生成txt文件:

public function index(){
$data=db('sensitive')->order('id asc')->paginate(50);
$dat = Db::name('sensitive')->select();
        $hang = 0;
        $file_conut = 0;
        foreach($dat as $key=>$v){
            $word = $v['name'];
            $words = preg_replace('/ /', '_', $word);
            if($hang % 200000 == 0){
                $file_conut++;
            }
            file_put_contents(ROOT_PATH."public/uploads/sen.txt",$words."\r\n",FILE_APPEND);
            $hang++;
        }
$this->assign('ts',$data);
return view();
}

5.将下面的方法放入公共方法或者调用的控制器里面将屏蔽词统一换成*

 function CFilter($content){
    $path = ROOT_PATH.'public/uploads/sen.txt'; //敏感词文件
    $path=str_replace("\\","/", $path);
    $filterContent = SensitiveHelper::init()->setTreeByFile($path)->replace($content, '*');
    return $filterContent;
}

6.实现的效果如下:

php敏感词(屏蔽词)基于DFA算法过滤详细步骤(图1)


未经允许不得转载:安晨末技术博客 » php敏感词(屏蔽词)基于DFA算法过滤详细步骤