深度过滤文章中的违禁词

深度过滤文章中的违禁词

例:过滤的关键词为 "朋友圈",而title 中有可能是 “我是朋友圈” “我是朋-友*圈”,等等类似的,在要屏蔽的关键词中可能会有不同的字符进行分割,这种类型的title要怎么深度过滤这些关键词?

str_replace 等正则过滤无法监测出title里的特殊字符,如 “我是朋-友*圈”

阅读 3.4k
3 个回答
$pattern = array('/朋([\s\S]?)*友([\s\S]?)*圈/i','/分[\s\S]?享/i','/砍[\s\S]?价/i');
$replacement = '***';
echo  preg_replace($pattern, $replacement, $str);

用正则去掉了

先过滤掉特殊字符在过滤你想过滤的关键词
如果过滤特殊字符后,过滤关键词为0就使用原来的字符串
如果过滤特殊字符后,过滤关键词不为0就使用过滤后的字符串

$array = [ 'xxx' => '*' ]
strtr($str, $arr);

推荐问题