您当前的位置: 首页 > 网站编程 > PHP教程 > PHP规则表达式简化E-Mail认证

PHP规则表达式简化E-Mail认证

作者:不详 来源:网络 发布时间: 2011-05-28 16:47 点击:
Web站点有时经常确认用户E-Mail地址。如果站点用PHP开发,则验证用户E-Mail地址变得非常容易,这主要归咎于PHP附带的功能强大的正则表达式引擎(Regular expression engine)。本文将演示使用规则表达式引擎的方便之处。 假设有一个要求用户输入E-Mail地址的Web页。 Ente

PHP规则表达式简化E-Mail认证

  Web站点有时经常确认用户E-Mail地址。如果站点用PHP开发,则验证用户E-Mail地址变得非常容易,这主要归咎于PHP附带的功能强大的正则表达式引擎(Regular expression engine)。本文将演示使用规则表达式引擎的方便之处。
  
  假设有一个要求用户输入E-Mail地址的Web页。
  
  Enter e-mail address:
  
  以上代码显示,提交请求被提交到validate.php。假设用户的E-Mail地址非常重要,那么就必须对其验证。
  
  完成这一过程的最佳方法就是使用规则表达式,将核实E-Mail地址的格式,并确保符合user@domain.ext的标准格式。举例
  
  //check e-mail address
  
  //display success or failure message
  
  if(!preg_match("/^([a-zA-Z0-9])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-]
  
  +)+/",$_POST[‘e-mail‘])){
  
  die("Invalid e-mail address");
  
  }
  
  echo"Valid e-mail address,processing...";
  
  ?>
  
  程序运行结果显示,将标记所有不符合user@domain.ext格式的邮件,而这一过程通过^([a-zA-Z0-9])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-]+)+/正则表达式来完成。仔细分析符号(^)表示字符串的起始。表达式([a-zA-Z0-9])+显示邮件地址的用户名部分的可允许使用字符的范围。加号(+)添加到这一范围末尾,表示至少有一个字符为强制性。@符号表示的意义正如符号本身,即@符号使用在E-Mail地址部分。表达式([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-]+)+代表E-Mail地址的domain.ext扩展部分。请注意表达式前部分没有包含句号(.),然而后一部分则包含句号,这就保证地址的domain部分包含至少一个字符。同样,加号(+)分散在字符之中,这表示domain部分必需至少一个字符。
  
  当然,以上表达式也并非完美,因为它无法确认无效的domain.ext。你可以通过使用用户名部分的句号以及限制domain部分的长度来紧凑化规则表达式。举例
  
  //check e-mail address
  
  //display success or failure message
  
  if(!preg_match("/^([a-zA-Z0-9])+([.a-zA-Z0-9_-])*@([a-zA-Z0-9_-
  
  ])+(.[a-zA-Z0-9_-]+)*.([a-zA-Z])$/",$_POST[‘e-mail‘])){
  
  die("Invalid e-mail address");
  
  }
  
  echo"Valid e-mail address,processing...";
  
  ?>
  
  下面为比较感兴趣的代码增加部分:现在,E-Mail地址的用户名部分包含两部分,其中一部分包含字母、数字以及破折号字符,并且支持句号。这就允许检验first.last@domain.ext格式的用户名。E-Mail地址的扩展部分,即([a-zA-Z],现在具有一个包含在大括号内的大小指定器,这就强制扩展部分的长度限定在2到6个字符之间。当前所有合法的扩展部分都处于这一范围之内。美元标号($)表示为字符分隔符的末尾。
  
  以上只列举了两个范例程序。当然,还有很多其它不同的方法,每种方法都有各自的利弊。请记住,由于效率等诸多原因的限制,没有十全十美的方法。所以,应该根据自己的需要,选择一种准确性和高性能相结合的方法。

分享到:
本文"PHP规则表达式简化E-Mail认证"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(1)
100%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4