この質問は以前に文字列について尋ねられましたが、*私が確認した質問はどれもありません (モッズは削除しないか、これが重複していると教えてください)、実際に私の質問に答えません.
メールボックスから簡単にサインアップできるランディングページがあります。最近では、*、#、$、% などの外国語を入力したり、わざと冒とく的な表現を使用したりして悪用されています (いつでもわかります)。私が使用している一連の禁止文字と単語は次のとおりです。
$banned = array("f**k", "f******", "blah", "*", "#", "$", "%");
私がいくつかの文字を見逃してしまい、突然大量のアドレスがまったく意味をなさずに入力されたため、誰かが意図的に何度も何度もそれを通過しようとしていることがわかります. Forループを使用して、次の配列に禁止された単語が含まれているかどうかを確認する方法を知る必要があります
$email = $_POST['email'];
使ってみました
$arrlen = count($banned);
for($i=0; $i < $arrlen; $i++) {
if(stripos($email, $banned[$i] !== false) {
echo 'Banned word or character!';
}
else {
echo 'Email signed up!';
}
}
これはまったく機能しませんでした!古い関数 is_str_contain を試してみましたが、 function does not exist のエラーが返ってきました。
通常のストロボも試してみましたが、まだ喜びはありません。