2013-01-07 70 views
0

我再次創建聯繫表單,並且正在使用eregi()。但是,衆所周知,eregi()函數在PHP 5.3上已被棄用,所以我想知道可以使用什麼替代函數來替換函數eregi()?我試過了!preg_match,即使我得到了所需的輸出,仍然有錯誤! > 3 <EREGI在PHP中的替代函數

警告:的preg_match():定界符不能在Ç字母數字或反斜槓:\ XAMPP \ htdocs中\牆\上線38 (可能的垃圾郵件嘗試mailform.php檢測如果不是這種情況,請編輯聯繫表格的內容並重試。) - ()中的句子是所需的結果。

這是我使用的代碼。 !preg_match()曾經是eregi()。 :)

function spamcheck($field) { 
    if(!preg_match("to:",$field) || !preg_match("cc:",$field) || !preg_match("\r",$field) || !preg_match("\n",$field) || !preg_match("%0A",$field)){ 
     $possiblespam = TRUE; 
    }else $possiblespam = FALSE; 
    if ($possiblespam) { 
     die("Possible spam attempt detected. If this is not the case, please edit the content of the contact form and try again."); 
     return 1; 
    } 
} 

謝謝任何​​人要回答和幫助我。任何形式的幫助都非常感謝!

+0

從你的「正則表達式」 S,你只是想'stripos'? – Passerby

+0

TBH,我不知道正則表達式是什麼,我懶得學習,因爲我很匆忙。什麼是'stripos',順便說一句?我已經通過網絡搜索,大部分答案都是我應該使用的!preg_match。但是當我使用它時會出現錯誤。 –

+0

看來你只想知道,例如, 「to:」存在於$ field中。如果這是真的,那麼它根本不需要RegExp。嘗試'if(stripos($ field,「to:」)!== false || stripos($ field,「cc:」)!== false)'。 – Passerby

回答

1

你必須圍繞與分隔符正則表達式:

preg_match("/to:/",$field) 
    here __^ ^
+0

^這工作得很好!非常感謝你! :) –

+0

@MicaelaGraceOsete:不客氣。隨時接受答案。 – Toto