2012-12-19 170 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

相关问题