Я уверен, что есть более умный способ сделать это в целом.
Если вы просто хотите быть более лаконичным, то, вероятно, лучше зациклить некоторые плохие слова, вместо добавления повторяющихся, почти идентичных, условий (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();
}
Редактировать: Также обратите внимание, что в вашем коде вопроса вы проверяете strpos! = False. Вы действительно хотите! ==, так как strpos () вернет 0, если первое слово, скажем, PENIS. 0 будет приведен к ложному. Видишь, куда я иду?
Кроме того, вы, вероятно, захотите использовать stripos (), чтобы не учитывать регистр (если только вам не важно, если люди СКАЖУТ оскорбительные слова): -)