if(strpos($string, "A Bad Word") != false){
echo 'This word is not allowed';
}
if(strpos($string, "A Bad Word") != false){
echo 'This word is not allowed';
}
Run Code Online (Sandbox Code Playgroud)
好的,所以我想检查提交数据,看看是否有不恰当的单词.而不是制作5个实例,是否有更有效的方法?
我相信一般来说,有一种更聪明的方法可以做到这一点.
如果你只是想要更简洁,那么最好循环一些坏词,而不是添加重复的,几乎相同的条件(ifs):
<?PHP
$banned = array('bad','words','like','these');
$looksLikeSpam = false;
foreach($banned as $naughty){
if (strpos($string,$naugty) !== false){
$looksLikeSpam=true;
}
}
if ($looksLikeSpam){
echo "You're GROSS! Just... ew!";
die();
}
Run Code Online (Sandbox Code Playgroud)
编辑:另外,请注意,在您的问题代码中,您测试strpos!= false.你真的想要!==,因为如果第一个单词,strpos()将返回0,比方说,PENIS.0将被转换为false.看看我要去哪里?
此外,您可能希望使用stripos(),以区分大小写(除非您只关心人们是否SHOUT令人反感的话):-)