2012-10-09 113 views
0

Possible Duplicate:
Warning: preg_match() [function.preg-match]: Unknown modifier '/'警告:的preg_match()[function.preg匹配]:未知的修飾詞 '{' 我

我有這個代碼至極的煩惱給了我一個錯誤:

Warning: preg_match() [function.preg-match]: Unknown modifier '{' in /usr/home/anubis-cosmetics.com/web/includes/functions/functions_email.php on line 568 

Warning: preg_match() [function.preg-match]: No ending delimiter '^' found in /usr/home/anubis-cosmetics.com/web/includes/functions/functions_email.php on line 586 

線568 :

if email domain part is an IP address, check each part for a value under 256 
    if (!preg_match ($valid_ip_form, $domain)) { 
     $digit = explode(".", $domain); 
     for($i=0; $i<4; $i++) { 
     if ($digit[$i] > 255) { 
      $valid_address = false; 
      return $valid_address; 
      exit; 
     } 

行586:

if (!preg_match($space_check, $email)) { // trap for spaces in 
     if (!preg_match ($valid_email_pattern, $email)) { // validate against valid email patterns 
     $valid_address = true; 
     } else { 
     $valid_address = false; 
     return $valid_address; 
     exit; 
     } 
    } 
    return $valid_address; 
    } 


?> 

我不知道該怎麼做,有人可以幫助我嗎?

編輯/////

我試圖改變分隔符這樣的:#--->

// if email domain part is an IP address, check each part for a value under 256 
    if (!preg_match ($valid_ip_form, $domain))# 
     $digit = explode(".", $domain); 

而另一個用於此:

if (!preg_match($space_check, $email)) { // trap for spaces in 
     if (!preg_match ($valid_email_pattern, $email)) { // validate against valid email patterns 
     $valid_address = true; 
     } else { 
     $valid_address = false; 
     return $valid_address; 
     exit; 
     } 
    } 
    return $valid_address;# 

仍然沒有工作......有人可以更具針對性(向我展示一些內聯示例)關於該問題?謝謝!

+7

包括你的正則表達式爲好,他們似乎是無效 – Laimoncijus

+0

什麼是'$ valid_ip_form'的價值?聽起來像你沒有提供分隔符。 –

+0

供參考:http://php.net/manual/en/regexp.reference.delimiters.php –

回答

2

問題出在你的$valid_ip_form分別是$space_check。他們將無效php PCRE表達式。

我想你錯過了opening and closing delimiters和您的表情看起來像:

^[0-9]{3}$ 

相反的:

~^[0-9]{3}$~ 
/^[0-9]{3}$/ 
#^[0-9]{3}$# 

或其他任何你喜歡的。

發佈他們,如果你想了解更多信息

+0

只是爲了確保:我不認爲分隔符是PCRE的一部分(或者他們?)。我認爲PHP需要它們表示正則表達式,但它們不是實際表達式的一部分。所以'$ valid_ip_form'可能是一個有效的表達式,但是PHP不能使用。 –

+0

@FelixKling據我瞭解... PHP稱它爲P ** C ** RE,因爲它們對它們做了一些改變(例如添加分隔符)......如果您有任何消息來源表示否則我會很高興學習新東西並修改我的答案。 – Vyktor

+0

PCRE實際上是一個獨立的庫,僅由PHP使用/實現。見http://www.pcre.org/pcre.txt。有趣的事實:'分隔符'這個術語在整個文檔中只出現一次;)但是我沒有讀過它,所以這就是我問的原因。 –

相關問題