深度过滤文章中的违禁词

深度过滤文章中的违禁词

例:过滤的关键词为 "朋友圈",而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);

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题