加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 检查字符串是否包含任何单词

发布时间:2020-12-13 17:48:05 所属栏目:PHP教程 来源:网络整理
导读:我需要检查一个字符串是否包含任何一个被禁止的单词.我的要求是: 不区分大小写,这就是我使用stripos()的原因 单词应该用空格分隔,例如,如果禁止的单词是“扑克”,“扑克游戏”或“游戏扑克比赛”应该被禁止的字符串和“trainpokering great”应该在良好的字
我需要检查一个字符串是否包含任何一个被禁止的单词.我的要求是:

>不区分大小写,这就是我使用stripos()的原因
>单词应该用空格分隔,例如,如果禁止的单词是“扑克”,“扑克游戏”或“游戏扑克比赛”应该被禁止的字符串和“trainpokering great”应该在良好的字符串下.

我尝试过类似下面的内容

$string  = "poker park is great";

if (stripos($string,'poker||casino') === false) 
{

echo "banned words found";
}
else

{
echo $string;
}

解决方法

您可以使用数组并加入它

$arr = array('poker','casino','some','other','word','regex+++*much/escaping()');
$string = 'cool guy';

for($i = 0,$l = count($arr); $i < $l; $i++) {
    $arr[$i] = preg_quote($arr[$i],'/');   // Automagically escape regex tokens (think about quantifiers +*,[],() delimiters etc...)
}
//print_r($arr); // Check the results after escaping

if(preg_match('/b(?:' . join('|',$arr). ')b/i',$string)) { // now we don't need to fear 
    echo 'banned words found';
} else {
    echo $string;
}

它使用单词边界并连接数组.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读