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

时间:2009-12-29 08:45:58   来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:gine)。本文将演示使用规则表达式引擎的方便之处。假设有一个要求用户输入E-Mail地址的Web页。<html><head></head><body><form action="validate.php" method="post">Enter e-mail address: <input type="text" name="e-mail"></body>
  正文:

Web站点有时经常确认用户E-Mail地址。如果站点用PHP开发,则验证用户E-Mail地址变得非常容易,这主要归咎于PHP附带的功能强大的正则表达式引擎(Regular expression engine)。本文将演示使用规则表达式引擎的方便之处。

假设有一个要求用户输入E-Mail地址的Web页。

<html>
<head></head>
<body>
<form action="validate.php" method="post">
Enter e-mail address: <input type="text" name="e-mail">
</body>
</html>

以上代码显示,提交请求被提交到validate.php。假设用户的E-Mail地址非常重要,那么就必须对其验证。

完成这一过程的最佳方法就是使用规则表达式,将核实E-Mail地址的格式,并确保符合user@domain.ext的标准格式。举例如下:

<?php
// 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])+显示邮件地址的用户名部分的可允许使用字符的范围。加号(+)添加到这一范围末尾,表示至少有一个字符为强制性。----www.002pc.com
  • @符号表示的意义正如符号本身,即@符号使用在E-Mail地址部分。
  • 表达式([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-]+)+代表E-Mail地址的domain.ext扩展部分。请注意表达式前部分没有包含句号(.),然而后一部分则包含句号,这就保证地址的domain部分包含至少一个字符。同样,加号(+)分散在字符之中,这表示domain部分必需至少一个字符。


来源:http://www.002pc.com/master/College/Programming/PHP/2008-11-27/3951.html

收藏到:

关于《PHP规则表达式简化E-Mail认证》文章的评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面

随机文章

    SQL Error: select * from ***_ecms_article where classid='86' and checked=1 order by rand() limit 10

顶出来的热门

    SQL Error: select * from ***_ecms_article where classid='86' and checked=1 order by diggtop desc,id desc limit 10
站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td