首页 > 开发 > PHP > 正文

用PHP来验证Email是否正确

2024-05-04 23:05:06
字体:
来源:转载
供稿:网友
  有什么问题请与我联系:http://www.VeVb.com [email protected]
 转载请注明出处

  当你在某个论坛上注册时,通常都有一个 e-mail 地址验证的功能,当你输入非法的一个格式时会出现某种错误提示信息的。

  我们可以使用下面的规则表达式
ereg("^[a-za-z0-9_][email protected][a-za-z0-9/-]+/.[a-za-z0-9/-/.]+$]", $email);

  但是上面这个式子的功能是只能检查字符串,不能进行输出。我们可以进一步利用这个式子来达到返回信息的功能:
if (eregi("^[a-za-z0-9_][email protected][a-za-z0-9/-]+/.[a-za-z0-9/-/.]+$]", $email))
{
return false;
}

  下面我们可以进一步来检测主机名,是不是存在:
list($username, $domain) = split("@",$email);
if(getmxrr($domain, $mxhost))
{
return true;
}
else
{
if(fsockopen($domain, 25, $errno, $errstr, 30))
{
return true;
}
else
{
return false;
}
}

  现在我们再把上面的两个功能用php组织起来构成一个函数:
function checkemail($email)

{ if(eregi("^[a-za-z0-9_][email protected][a-za-z0-9/-]+/.[a-za-z0-9/-/.]+$]", $email))
{
return false;
}

list($username, $domain) = split("@",$email);

if(getmxrr($domain, $mxhost))
{
return true;
}
else
{
if(fsockopen($domain, 25, $errno, $errstr, 30))
{
return true;
}
else
{
return false;
}
}
}

  之后我们就可以利用这个函数来检测是否存在输入的一个email了,举个例子:

if(checkemail([email protected]) == false)
{
echo "您输入的e_mail是不正确的.";
}
else
{
echo "输入的e_mail是正确的.";
}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表