PHP如何验证表单中的邮件和URL

本篇内容介绍了“PHP如何验证表单中的邮件和URL”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

站在用户的角度思考问题,与客户深入沟通,找到临翔网站设计与临翔网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:做网站、成都做网站、企业官网、英文网站、手机端网站、网站推广、空间域名、虚拟空间、企业邮箱。业务覆盖临翔地区。

PHP如何验证表单中的邮件和URL

正则表达式

正则表达式是一种描述一段文本规则的方法,它不是精确的匹配,而是通过一些特定的符号来模糊匹配。在PHP中,我们使用preg_match函数来执行正则表达式的匹配,一个参数是我们的正则表达式规则,第二个参数是需要检查的文本。

preg_match函数的语法格式如下:

preg_match ( string $正则 , string $字符串 [, array &$结果] )

其中我们需要注意到的是:根据$正则变量,匹配$字符串变量。如果存在则返回匹配的个数,把匹配到的结果放到$结果变量里。如果没有匹配到结果返回0。^表示开始;$表示结束。

接下来我们通过示例来看一下正则表达式的应用:

以上示例中就是在匹配以date 开始的编号。输出结果:

PHP如何验证表单中的邮件和URL

接下来我们看一下preg_matchede第三个参数是匹配的内容,通常我们会将一个空的数组传递进去,因为是传址调用,匹配结束后,数组中会得到具体匹配的内容。

我们还是通过一个示例来看一下,示例如下:

输出结果:

PHP如何验证表单中的邮件和URL

在正则表达式中字母使用\w、而数字使用\d\D表示非数字)来表示

+ 表示一个或者多个,* 表示0个或者多个,? 表示有或者没有,{n} 表示具体几位,{m, n} 表示大于m个,小于n个。

示例如下:

输出结果:

PHP如何验证表单中的邮件和URL

使用或条件可以用来匹配字符串,如果仅仅是单个的字母或者字符,则可以使用范围表示,使用[]可以表示一个字符的取值范围'/[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";
}

将上述的验证方法添加到整体的格式中,示例如下:


 
 
     
     创新互联
 
 
 
 
 
 
 

PHP 验证实例

 

* 必需的字段

 ">      姓名:            

     邮箱:            

     网址:            

     评论:      

     性别:      女性      男性            

           您的输入:";  echo $name;  echo "
";  echo $email;  echo "
";  echo $website;  echo "
";  echo $comment;  echo "
";  echo $gender;  ?>      

通过上述代码,当我们没有按照我们设置的规则填写的话,输出结果如下:

PHP如何验证表单中的邮件和URL

当然作为扩展知识,也可以使用弹窗,只需要在上述示例中的代码做些改动,将输出的字符变成弹窗的格式,示例如下:


 
 
     
     创新互联
 
 
 
 
 
        {
        alert(\"姓名是必填的\"); //弹出对话框
        }
        ";
     } else {
         $name = test_input($_POST["name"]);
         if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
             $nameErr = "
            {
            alert(\"姓名只允许字母和空格\"); //弹出对话框
            }
            ";
         }
     }
     if (empty($_POST["email"])) {
         $emailErr = "
        {
        alert(\"电邮是必填的\"); //弹出对话框
        }
        ";
     } else {
         $email = test_input($_POST["email"]);
         // 检查电子邮件地址语法是否有效
         if (!preg_match("/^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/",$email)) {
             $emailErr = "
            {
            alert(\"无效email的格式\"); //弹出对话框
            }
            ";
         }
     }
     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 = "
            {
            alert(\"无效的URL\"); //弹出对话框
            }
            ";
         }
     }
     if (empty($_POST["comment"])) {
         $comment = "";
     } else {
         $comment = test_input($_POST["comment"]);
     }
     if (empty($_POST["gender"])) {
         $genderErr = "
        {
        alert(\"性别是必选的\"); //弹出对话框
        }
        ";
     } else {
         $gender = test_input($_POST["gender"]);
     }
 }
 function test_input($data) {
     $data = trim($data);
     $data = stripslashes($data);
     $data = htmlspecialchars($data);
     return $data;
 }
 ?>
 

PHP 验证实例

 

* 必需的字段

 ">      姓名:            

     邮箱:            

     网址:            

     评论:      

     性别:      女性      男性            

           您的输入:";  echo $name;  echo "
";  echo $email;  echo "
";  echo $website;  echo "
";  echo $comment;  echo "
";  echo $gender;  ?>      

当填写内容不按规定规则是,点击提交,输出结果如下:

PHP如何验证表单中的邮件和URL

PHP如何验证表单中的邮件和URL

PHP如何验证表单中的邮件和URL

如此我们便完成了PHP验证名称、邮件和URL。

“PHP如何验证表单中的邮件和URL”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!


本文题目:PHP如何验证表单中的邮件和URL
文章路径:http://csdahua.cn/article/ggcdpg.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流