确定字符串是否包含数组中的一组单词之一

mrp*_*atg 2 php

我需要一个简单的文字过滤器,如果它检测到字符串中的过滤词,将会杀死脚本.

说我的话如下

$showstopper = array(badword1, badword2, badword3, badword4);

$yourmouth = "im gonna badword3 you up";

if(something($yourmouth, $showstopper)){ 
//stop the show
}
Run Code Online (Sandbox Code Playgroud)

Sam*_*son 6

您可以将坏词数组内爆到正则表达式中,看看它是否与haystack匹配.或者您可以简单地遍历数组,并单独检查每个单词.

来自评论:

$re = "/(" . implode("|", $showstopper) . ")/"; //  '/(badword1|badword2)/'
if (preg_match($re, $yourmouth) > 0) { die("foulmouth"); }
Run Code Online (Sandbox Code Playgroud)

  • $ re ="/(".implode("|",$ showstopper).")/"; if(preg_match($ re,$ yourmouth)> 0){die("foulmouth"); } (2认同)