Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP坏字过滤_Php_Filter_Preg Match_Preg Match All - Fatal编程技术网

PHP坏字过滤

PHP坏字过滤,php,filter,preg-match,preg-match-all,Php,Filter,Preg Match,Preg Match All,这是一个非常奇怪的情况,我们有一个坏词列表,所有这些词都很完美,直到一个名为“Claudia”的客户试图提交表格: $blocked = ['audi','opel','vw','mercedes','porsche']; $input = 'Claudia'; $matched = preg_match_all("/(".implode('|', $blocked).")/i", $input); if($matched > 0) { echo "Your word: {$i

这是一个非常奇怪的情况,我们有一个坏词列表,所有这些词都很完美,直到一个名为“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";
}
如果你试图用输入“Claudia”提交,如何使这个坏词检查器也能工作

但不包括:

"my audi"
"-audi-"
"**audi**"
。。。
或者使用audi的任何其他变体?

您可以用标记(
\b
)围绕正则表达式,这将限制它仅匹配“整”字。将行更改为:

$matched = preg_match_all("/\b(".implode('|', $blocked).")\b/i", $input);

请参见

您可以用标记(
\b
)包围正则表达式,这将限制它仅匹配“整”字。将行更改为:

$matched = preg_match_all("/\b(".implode('|', $blocked).")\b/i", $input);

请看

您的php版本是什么?php版本是5.64也许我可以列出一些单词?我不知道怎么做!?如果这个词在白名单中,我可以再加一个检查,然后让它通过!?只希望一个叫梅赛德斯的人不要提交表格;p你遇到了斯肯索普问题()。您可以添加额外的检查来解决这个问题,但如果您尝试自动过滤掉输入,最终您总会遇到类似的问题。也许最好还是存储输入,但将其标记为可疑,以便主持人审查?您的php版本是什么?php版本是5.64也许我可以列出一些单词?我不知道怎么做!?如果这个词在白名单中,我可以再加一个检查,然后让它通过!?只希望一个叫梅赛德斯的人不要提交表格;p你遇到了斯肯索普问题()。您可以添加额外的检查来解决这个问题,但如果您尝试自动过滤掉输入,最终您总会遇到类似的问题。也许最好还是存储输入,但将其标记为可疑,供主持人查看?您可以修复链接:)您可以修复链接:)