1.背景

阻止用户输入敏感词,其原理就是正则过滤。

2.过滤的基本原理

$str='我爱a,我是狗,请求f';
$pattern='/a|狗|d/i';
$replacement='**';
echo preg_replace();

3.海量数据过滤

上法当敏感词很多时,占内存巨大,所以用函数将其转成海量数组,再将海量数组分隔,使用:

$str='我爱a,我是狗,请求f';
$block_arr=array('aa', '狗', 'c', 'd','e');
$sm_list=array_chunk($block_arr,2);//分成小块
foreach($sm_list AS $key => $value){
$pattern="/".implode("|",$value)."/i";//array_column从多维数组中取一列
$replacement='**';
$str=preg_replace($pattern,$replacement,$str);
}
echo $str;