2012-10-09 75 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。有趣的事实:'分隔符'这个术语在整个文档中只出现一次;)但是我没有读过它,所以这就是我问的原因。 –

相关问题