2013-10-04 94 views
1

我使用以下內容來檢查表單中的數據是否包含某些單詞,但問題在於,當它檢查到「我找到了匹配項「或者」一場比賽沒有找到「一遍又一遍地重複一百次。我如何才能爲發佈的整個句子賦予一個真或假的值?我想然後添加像....如果真正轉儲這篇文章,如果虛假處理它,並把它放在數據庫中。用preg匹配返回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."; 
     } 
    } 

    ?> 
+0

'的preg_match( 「/ \ B」。$噸。 「\ B/I」,$消息)'這本身返回true或false。 –

回答

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; 
} 
+0

謝謝,即時嘗試像這樣檢查,但它一直返回true? $ result = containsSpam($ message); if($ result = true){echo'true';} else {echo'false';} –

+0

ahh現在排序 –

+0

您應該使用'=='進行比較,使用'='進行賦值。在布爾值'if($ result)'足夠的情況下。 – fluminis

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

你應該添加一個'break;'停止循環當停止詞被發現 – fluminis

相關問題