使用预处理匹配返回 true 或 false,而不是回显句子


Return true or false with preg match instead of echoing out a sentence

我正在使用以下内容来检查表单中的数据是否包含某些单词,但问题是,当它检查时,我一遍又一遍地得到"找到匹配项"或"找不到匹配项"一百万次。我怎么能为发布的整个句子分配一个真值或假值?然后我想添加类似...如果为 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.";
        }
    }
    ?>
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;
}
如果我

做对了,你需要像这样设置一个停止值

<?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
    }
}
?>