用PHP来验证Email是否正确

王朝php·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

有什么问题请与我联系:http://www.webjx.com web@webjx.com

转载请注明出处

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

我们可以使用下面的规则表达式

ereg("^[a-zA-Z0-9_]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$]", $email);

但是上面这个式子的功能是只能检查字符串,不能进行输出。我们可以进一步利用这个式子来达到返回信息的功能:

if (eregi("^[a-zA-Z0-9_]+@[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_]+@[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(web@webjx.com) == FALSE)

{

echo "您输入的E_mail是不正确的.";

}

else

{

echo "输入的E_mail是正确的.";

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航