2012-12-19 108 views
5

我正在此錯誤消息:的preg_match()[function.preg匹配]:未知的修飾

的preg_match()[function.preg匹配]:未知的修飾 '=' 在/ home /的public_html /checkem.php在線13

當我去下面一行我得到這個:

<?php 
    //thx to http://www.phpit.net/code/valid-email/ for valid_email 
    function valid_email($email) { 
    // First, we check that there's one @ symbol, and that the lengths are right 
    if (!ereg("^[^@]{1,64}@[^@]{1,255}$", $email)) { 
     // Email invalid because wrong number of characters in one section, or wrong number @ symbols. 
     return false; 
    } 
    // Split it into sections to make life easier 
    $email_array = explode("@", $email); 
    $local_array = explode(".", $email_array[0]); 
    for ($i = 0; $i < sizeof($local_array); $i++) { 
     if (!preg_match("/^(([A-Za-z0-9!#$%&#038;'*+/=?^_`{|}~-][A-Za-z0-9!#$%&#038;14.'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$/", $local_array[$i])) { 
      return false; 
     } 
    } 
    if (!ereg("^\[?[0-9\.]+\]?$", $email_array[1])) { // Check if domain is IP. If not, it should be valid domain name 
     $domain_array = explode(".", $email_array[1]); 
      if (sizeof($domain_array) < 2) { 
       return false; // Not enough parts to domain 
      } 
     } 
    } 
?> 

我已將ereg更改爲preg_match,然後用//將代碼打包,因爲ereg顯示爲已棄用。我仍然是編碼方面的初學者,任何幫助都將非常感謝。

回答

0
preg_match("/^(([A-Za-z0-9!#$%&#038;'*+/=?^_`{|}~-][A-Za-z0-9!#$%&#038;14.'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$/ 
      ^      ^
      |       | 
      start      end 

需要引用/\/當它不是一個分隔符。或者,選擇不在表達式中的分隔符,如@

1

如果/是您的模式分隔符,則必須使用模式中的反斜槓進行掩碼。並且PHP字符串的反斜槓也必須(應該)被屏蔽。

preg_match("/^(([A-Za-z0-9!#$%&#038;'*+/=?^_`{|}~-][A-Za-z0-9!#$%&#038;14.'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$/", $local_array[$i]) 

preg_match("/^(([A-Za-z0-9!#$%&#038;'*+\\/=?^_`{|}~-][A-Za-z0-9!#$%&#038;14.'*+\\/=?^_`{|}~\\.-]{0,63})|(\\"[^(\\\\|\\")]{0,62}\\"))$/", $local_array[$i]) 

BurninLeo

相關問題