Не рекомендуется: Функция eregi () устарела в C: \ wamp \ - PullRequest
1 голос
/ 23 марта 2011

пожалуйста, при использовании функции 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";
    }
}

Ответы [ 3 ]

3 голосов
/ 23 марта 2011

функция 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 делает его нечувствительным к регистру

2 голосов
/ 23 марта 2011

используйте функцию preg_match() вместо

. Вы можете найти страницу руководства php здесь: http://us3.php.net/manual/en/function.preg-match.php

1 голос
/ 23 марта 2011

Помимо замены ereg_* на preg_*, следует учитывать встроенную функцию filter_var():

filter_var($mail, FILTER_VALIDATE_EMAIL)

вы по-прежнему будете получать ложные отрицания (есть много действительных писем, которые вы никогда не сможете себе представить), но это все же лучше, чем плохое регулярное выражение

...