1

以下を使用して、フォームのデータに特定の単語が含まれているかどうかを確認していますが、問題は、チェック時に「一致が見つかりました」または「一致が見つかりませんでした」というメッセージが何度も何度も表示されることです。 . 投稿された文全体に真または偽の値を割り当てるにはどうすればよいですか? 次に、次のようなものを追加したいと思います....trueの場合はこの投稿をダンプし、falseの場合は処理してデータベースに入れます。

    <?php
    $message = $_POST['message'];
    echo $message;

    $targets = array('viagra', 'prescription', 'drugs', 'zyban', 'zithromax', 'voltaren', 'cilias', 'FDA');

    foreach($targets as $t)
    {
        if (preg_match("/\b" . $t . "\b/i", $message)) {
            echo "A match was found.";
        } else {
            echo "A match was not found.";
        }
    }

    ?>
4

2 に答える 2

3
function containsSpam($message) {
    $targets = array('viagra', 'prescription', 'drugs', 'zyban', 'zithromax', 'voltaren', 'cilias', 'FDA');

    foreach($targets as $t)
    {
        if (preg_match("/\b" . $t . "\b/i", $message)) {
            //A match was found.
            return true;
        }
    }
    return false;
}
于 2013-10-04T10:54:55.330 に答える
0

うまくいけば、このような停止値を設定する必要があります

<?php
function containsSpam($message) {
    $targets = array('viagra', 'prescription', 'drugs', 'zyban', 'zithromax', 'voltaren', 'cilias', 'FDA');        
    $stop = false;
    foreach($targets as $t)
    {
        if (preg_match("/\b" . $t . "\b/i", $message)) {
            //A match was found.
            $stop = true;
            break;
        }
    }
    //And you can then do something like this
    if ($check) {
       //Insert it
    } else {
       //Dump it
    }
}
?>
于 2013-10-04T10:54:05.517 に答える