有什么问题请与我联系:http://www.ninedns.com web@ninedns.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@ninedns.com) == FALSE) { echo "您输入的E_mail是不正确的."; } else { echo "输入的E_mail是正确的."; } |
|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )
GMT+8, 2024-9-30 13:24 , Processed in 0.183003 second(s), 12 queries , Gzip On, MemCache On.
Powered by Discuz! X3.5
© 2001-2023 Discuz! Team.