1

请在使用 eregi() 函数验证电子邮件地址时出现此错误:

Deprecated: Function eregi() is deprecated in C:\wamp\www\ssiphone\classes\TraitementFormulaireContact.php on line 13

我可能会出现问题的代码是:

 public function verifierMail($mail)
 {
    if(eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $mail)) {
      return "valid mail";
    }
    else {
      return "invalid mail";
    }
}
4

3 回答 3

3

eregi函数已被弃用,这意味着在未来的 PHP 版本中它将被删除。

您可以将其替换为功能preg_match几乎相同的功能。

示例代码(未经测试):

public function verifierMail($mail)
{
if(preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/i", $mail)) {
  return "valid mail";
}
else {
  echo "invalid mail";
}

/i 使其不区分大小写

于 2011-03-23T17:24:08.823 回答
2

preg_match()改用该功能

你可以在这里找到 php 手册页:http: //us3.php.net/manual/en/function.preg-match.php

于 2011-03-23T17:24:19.273 回答
1

除了用 替换之外ereg_*preg_*您还应该考虑内置filter_var()函数:

filter_var($mail, FILTER_VALIDATE_EMAIL)

你仍然会得到误报(有很多你从未想象过的有效电子邮件),但它仍然比一个糟糕的正则表达式更好。

于 2011-03-23T17:28:34.413 回答