本篇内容介绍了“PHP如何验证表单中的邮件和URL”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
站在用户的角度思考问题,与客户深入沟通,找到临翔网站设计与临翔网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:做网站、成都做网站、企业官网、英文网站、手机端网站、网站推广、空间域名、虚拟空间、企业邮箱。业务覆盖临翔地区。
正则表达式
正则表达式是一种描述一段文本规则的方法,它不是精确的匹配,而是通过一些特定的符号来模糊匹配。在PHP中,我们使用preg_match
函数来执行正则表达式的匹配,一个参数是我们的正则表达式规则,第二个参数是需要检查的文本。
preg_match
函数的语法格式如下:
preg_match ( string $正则 , string $字符串 [, array &$结果] )
其中我们需要注意到的是:根据$正则变量
,匹配$字符串变量
。如果存在则返回匹配的个数,把匹配到的结果放到$结果变量
里。如果没有匹配到结果返回0。^
表示开始;$
表示结束。
接下来我们通过示例来看一下正则表达式的应用:
以上示例中就是在匹配以date 开始的编号。输出结果:
接下来我们看一下preg_matchede
第三个参数是匹配的内容,通常我们会将一个空的数组传递进去,因为是传址调用,匹配结束后,数组中会得到具体匹配的内容。
我们还是通过一个示例来看一下,示例如下:
输出结果:
在正则表达式中字母使用\w
、而数字使用\d
(\D
表示非数字)来表示
+
表示一个或者多个,*
表示0个或者多个,?
表示有或者没有,{n}
表示具体几位,{m, n}
表示大于m个,小于n个。
示例如下:
输出结果:
使用或条件可以用来匹配字符串,如果仅仅是单个的字母或者字符,则可以使用范围表示,使用[]
可以表示一个字符的取值范围'/[a0\.]/'
可以匹配包含了a或者0或者.
的任意字符串。
另外,正则表达式还可以使用-来表示一组范围,[a-z]
表示小写的26个字母中的任意一个,[A-Z]
表示一个大写字母,[0-9]
表示一位十进制数。
正则表达式了解这么多,接下来我们就要来验证表单的格式是否正确了。
PHP验证名称、邮件和URL
名字的验证规则是必须的,并且只能包含字母和空格。E-mail的验证规则是必须的,其中必须是一个有效的电子邮件地址(包含'@'和'.')。网址的验证规则的是可选的,并且如果存在,它必须包含一个有效的URL。备注的验证规则是可选的,多行输入字段。性别的验证规则是必须的,必须选择一个。
那接下来我们可以通过上述中的政策表达式来写出以下代码,将通过简单的方式来检测 name 字段是否包含字母和空格,如果 name 字段值不合法,将输出错误信息,示例如下:
$name = test_input($_POST["name"]); if (!preg_match("/^[a-zA-Z]*$/",$name)) { $nameErr = "只允许字母和空格"; }
通过上述代码便能够提示用户姓名填写的格式,接下来我们可以根据同样的方法来验证邮件和URL。
邮箱名可以是字母、数字、下划线和点组成的任意字符;邮箱要包含@符号,后面的文字按域名规则处理,以下代码将通过简单的方式来检测 e-mail 地址是否合法。如果 e-mail 地址不合法,将输出错误信息,示例如下:
$email = test_input($_POST["email"]); if (!preg_match("/^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/",$email)) { $emailErr = "无效的 email 格式!"; }
以下代码将检测URL地址是否合法 (以下正则表达式运行URL中含有破折号:"-
"), 如果 URL 地址不合法,将输出错误信息,示例如下:
$website = test_input($_POST["website"]); if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/% =~_|]/i",$website)) { $websiteErr = "无效的 URL"; }
将上述的验证方法添加到整体的格式中,示例如下:
您的输入:"; echo $name; echo "创新互联 PHP 验证实例
* 必需的字段
"; echo $email; echo "
"; echo $website; echo "
"; echo $comment; echo "
"; echo $gender; ?>
通过上述代码,当我们没有按照我们设置的规则填写的话,输出结果如下:
当然作为扩展知识,也可以使用弹窗,只需要在上述示例中的代码做些改动,将输出的字符变成弹窗的格式,示例如下:
您的输入:"; echo $name; echo "创新互联 { alert(\"姓名是必填的\"); //弹出对话框 } "; } else { $name = test_input($_POST["name"]); if (!preg_match("/^[a-zA-Z ]*$/",$name)) { $nameErr = ""; } } if (empty($_POST["email"])) { $emailErr = ""; } else { $email = test_input($_POST["email"]); // 检查电子邮件地址语法是否有效 if (!preg_match("/^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/",$email)) { $emailErr = ""; } } if (empty($_POST["website"])) { $website = ""; } else { $website = test_input($_POST["website"]); // 检查 URL 地址语法是否有效(正则表达式也允许 URL 中的斜杠) if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) { $websiteErr = ""; } } if (empty($_POST["comment"])) { $comment = ""; } else { $comment = test_input($_POST["comment"]); } if (empty($_POST["gender"])) { $genderErr = ""; } else { $gender = test_input($_POST["gender"]); } } function test_input($data) { $data = trim($data); $data = stripslashes($data); $data = htmlspecialchars($data); return $data; } ?>PHP 验证实例
* 必需的字段
"; echo $email; echo "
"; echo $website; echo "
"; echo $comment; echo "
"; echo $gender; ?>
当填写内容不按规定规则是,点击提交,输出结果如下:
如此我们便完成了PHP验证名称、邮件和URL。
“PHP如何验证表单中的邮件和URL”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!
网站题目:PHP如何验证表单中的邮件和URL
标题来源:http://scyingshan.cn/article/ggcdpg.html