这是一个非常奇怪的情况,我们有一个坏词列表,所有工作都很完美,直到一个名为“Claudia”的客户试图提交表格:
context['request-id']
如果您尝试使用输入“Claudia”提交,如何使这个坏词检查工作?
但不是:
$blocked = ['audi','opel','vw','mercedes','porsche'];
$input = 'Claudia';
$matched = preg_match_all("/(".implode('|', $blocked).")/i", $input);
if($matched > 0) {
echo "Your word: {$input} is blocked";
} else {
echo "Your word: {$input} is OK";
}
... 或奥迪的任何其他变体?
答案 0 :(得分:2)
您可以使用word boundary标记(\b
)包围正则表达式,这会将其限制为匹配"整个"只有单词。将行更改为:
$matched = preg_match_all("/\b(".implode('|', $blocked).")\b/i", $input);