フォーラムに登録すると、通常メールアドレス認証機能があり、不正な形式を入力すると何らかのエラーメッセージが表示されます。
次の正規表現を使用できます
ereg("^[a-zA-Z0-9_] @[a-zA-Z0-9-] .[a-zA-Z0-9-.] $]", $email);
ただし、上記の式の機能は、文字列をチェックするだけで出力できないことです。さらにこの式を使用して、情報を返す機能を実現できます:
if (エレギ("^[a-zA-Z0-9_] @[a-zA-Z0-9-] .[a-zA-Z0-9-.] $]", $email))
{
FALSE を返します;
}
次に、ホスト名が存在するかどうかをさらに確認できます:
list($Username, $Domain) = split("@",$email);
if(getmxrr($Domain, $MXHost))
{
TRUE を返します;
}
それ以外
{
if(fsockopen($Domain, 25, $errno, $errstr, 30))
{
TRUE を返します;
}
それ以外
{
FALSE を返します;
}
}
次に、上記 2 つの関数を PHP を使用して関数に整理してみましょう:
関数 checkEmail($email)
{ if(エレギ("^[a-zA-Z0-9_] @[a-zA-Z0-9-] .[a-zA-Z0-9-.] $]", $email))
{
FALSE を返します;
}
list($Username, $Domain) = split("@",$email);
if(getmxrr($Domain, $MXHost))
{
TRUE を返します;
}
それ以外
{
if(fsockopen($Domain, 25, $errno, $errstr, 30))
{
TRUE を返します;
}
それ以外
{
FALSE を返します;
}
}
}
その後、この関数を使用して、入力されたメールがあるかどうかを検出できます。例:
if(checkEmail(web@etoow.com) == FALSE)
{
echo "入力した電子メールは正しくありません。";
}
それ以外
{
echo "入力されたメールアドレスは正しいです。";
}