首页 > 语言 > PHP > 正文

用PHP来验证Email是否正确

2024-09-04 11:47:09
字体:
来源:转载
供稿:网友

当你在某个论坛上注册时,通常都有一个 e-mail 地址验证的功能,当你输入非法的一个格式时会出现某种错误提示信息的,我们可以使用下面的规则表达式:

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

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

  1. if (eregi("^[a-zA-Z0-9_] @[a-zA-Z0-9-] .[a-zA-Z0-9-.] $]"$email)) 
  2. return FALSE; 

下面我们可以进一步来检测主机名,是不是存在:

  1. list($Username$Domain) = split("@",$email); 
  2. if(getmxrr($Domain$MXHost)) 
  3. return TRUE; 
  4. else 
  5. if(fsockopen($Domain, 25, $errno$errstr, 30)) 
  6. return TRUE; 
  7. else 
  8. return FALSE; 

现在我们再把上面的两个功能用PHP组织起来构成一个函数:

  1. function checkEmail($email
  2.  
  3. if(eregi("^[a-zA-Z0-9_] @[a-zA-Z0-9-] .[a-zA-Z0-9-.] $]"$email)) 
  4. return FALSE; 
  5.  
  6. list($Username$Domain) = split("@",$email); 
  7.  
  8. if(getmxrr($Domain$MXHost)) 
  9. return TRUE; 
  10. else 
  11. if(fsockopen($Domain, 25, $errno$errstr, 30)) 
  12. return TRUE; 
  13. else 
  14. return FALSE; 

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

  1. if(checkEmail(web@etoow.com) == FALSE) 
  2. echo "您输入的E_mail是不正确的."
  3. else 
  4. echo "输入的E_mail是正确的."

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表