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;