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 に答える