警告:preg_match()[function.preg-match]:未知修饰符'{'i

时间:2012-10-09 07:17:44

标签: php regex

  

可能重复:
  Warning: preg_match() [function.preg-match]: Unknown modifier '/'

我遇到了这个代码的麻烦,它给了我下一个错误:

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;
  }


?>

我不知道怎么做,有人可以帮我吗?

EDIT /////

我试图更改分隔符:#---&gt;

// 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;#

仍然没有工作......有人可以更具体(给我一些内联示例)关于这个问题吗?谢谢!

1 个答案:

答案 0 :(得分:2)

问题出在$valid_ip_form $space_check上。它们将是无效的php PCRE表达式。

我猜你错过了opening and closing delimiters,你的表情看起来像是:

^[0-9]{3}$

而不是:

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

或者你喜欢的其他任何东西。

如果您想了解更多信息,请发布它们