我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

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

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

正则表达式

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

preg_match函数的语法格式如下:

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

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

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

<?php header("Content-type:text/html;charset=utf-8");    //设置编码 $str = 'date20150121'; if (preg_match('/^date/', $str)) {     echo '匹配成功'; } else {     echo '匹配失败'; } ?>

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

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

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

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

<?php header("Content-type:text/html;charset=utf-8");    //设置编码 $str = 'date20150121'; if (preg_match('/^date/', $str,$mat)) {     print_r($mat); } else {     echo '匹配失败'; } ?>

输出结果:

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

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

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

示例如下:

<?php header("Content-type:text/html;charset=utf-8");    //设置编码 $name = "zhang"; // wang zhu hu ma tan  if (preg_match('/an|hu/', $name, $arr)) {     print_r($arr); } else {     echo '匹配失败'; } ?>

输出结果:

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";}

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

<!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8">     <title>编程网</title> </head>  <style>     .error {color: #FF0000;} </style> <body> <?php // 定义变量并设置为空值 $nameErr = $emailErr = $genderErr = $websiteErr = ""; $name = $email = $gender = $comment = $website = "";  if ($_SERVER["REQUEST_METHOD"] == "POST") {     if (empty($_POST["name"])) {         $nameErr = "姓名是必填的";     } 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 = "无效的 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 = "无效的 URL";         }     }      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; } ?>  <h3>PHP 验证实例</h3> <p><span class="error">* 必需的字段</span></p> <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">     姓名:<input type="text" name="name">     <span class="error">* <?php echo $nameErr;?></span>     <br><br>     邮箱:<input type="text" name="email">     <span class="error">* <?php echo $emailErr;?></span>     <br><br>     网址:<input type="text" name="website">     <span class="error"><?php echo $websiteErr;?></span>     <br><br>     评论:<textarea name="comment" rows="5" cols="40"></textarea>     <br><br>     性别:     <input type="radio" name="gender" value="female">女性     <input type="radio" name="gender" value="male">男性     <span class="error">* <?php echo $genderErr;?></span>     <br><br>     <input type="submit" name="submit" value="提交"> </form>  <?php echo "<h3>您的输入:</h3>"; echo $name; echo "<br>"; echo $email; echo "<br>"; echo $website; echo "<br>"; echo $comment; echo "<br>"; echo $gender; ?>  </body> </html>

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

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

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

<!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8">     <title>编程网</title> </head>  <style>     .error {color: #FF0000;} </style> <body> <?php // 定义变量并设置为空值 $nameErr = $emailErr = $genderErr = $websiteErr = ""; $name = $email = $gender = $comment = $website = ""; if ($_SERVER["REQUEST_METHOD"] == "POST") {     if (empty($_POST["name"])) {         $nameErr = "<script language=\"javascript\">        {        alert(\"姓名是必填的\"); //弹出对话框        }        </script>";     } else {         $name = test_input($_POST["name"]);         if (!preg_match("/^[a-zA-Z ]*$/",$name)) {             $nameErr = "<script language=\"javascript\">            {            alert(\"姓名只允许字母和空格\"); //弹出对话框            }            </script>";         }     }     if (empty($_POST["email"])) {         $emailErr = "<script language=\"javascript\">        {        alert(\"电邮是必填的\"); //弹出对话框        }        </script>";     } else {         $email = test_input($_POST["email"]);         // 检查电子邮件地址语法是否有效         if (!preg_match("/^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/",$email)) {             $emailErr = "<script language=\"javascript\">            {            alert(\"无效email的格式\"); //弹出对话框            }            </script>";         }     }     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 = "<script language=\"javascript\">            {            alert(\"无效的URL\"); //弹出对话框            }            </script>";         }     }     if (empty($_POST["comment"])) {         $comment = "";     } else {         $comment = test_input($_POST["comment"]);     }     if (empty($_POST["gender"])) {         $genderErr = "<script language=\"javascript\">        {        alert(\"性别是必选的\"); //弹出对话框        }        </script>";     } else {         $gender = test_input($_POST["gender"]);     } } function test_input($data) {     $data = trim($data);     $data = stripslashes($data);     $data = htmlspecialchars($data);     return $data; } ?> <h3>PHP 验证实例</h3> <p><span class="error">* 必需的字段</span></p> <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">     姓名:<input type="text" name="name">     <span class="error">* <?php echo $nameErr;?></span>     <br><br>     邮箱:<input type="text" name="email">     <span class="error">* <?php echo $emailErr;?></span>     <br><br>     网址:<input type="text" name="website">     <span class="error"><?php echo $websiteErr;?></span>     <br><br>     评论:<textarea name="comment" rows="5" cols="40"></textarea>     <br><br>     性别:     <input type="radio" name="gender" value="female">女性     <input type="radio" name="gender" value="male">男性     <span class="error">* <?php echo $genderErr;?></span>     <br><br>     <input type="submit" name="submit" value="提交"> </form>  <?php echo "<h3>您的输入:</h3>"; echo $name; echo "<br>"; echo $email; echo "<br>"; echo $website; echo "<br>"; echo $comment; echo "<br>"; echo $gender; ?>  </body> </html>

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

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

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

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

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

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

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

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

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

如何使用PHP进行表单验证?(PHP中如何进行表单数据的验证?)

本文详细介绍了使用PHP进行表单验证的方法:使用内置函数和类进行验证。定义自定义验证规则。遵循验证步骤和最佳实践。通过验证表单数据,可以确保用户输入的有效性和完整性,从而提高网站安全性。
如何使用PHP进行表单验证?(PHP中如何进行表单数据的验证?)
2024-04-02

PHP开发中如何优化表单验证和数据输入验证

【引言】在Web开发中,表单验证和数据输入验证是非常重要的步骤,它们能够保证用户输入的数据的合法性和安全性。不仅可以避免用户输入错误或恶意输入,还可以防止数据库或应用程序遭受SQL注入等攻击。本文将介绍如何优化PHP开发中的表单验证和数据输
2023-10-21

如何优化PHP开发中的表单提交和验证

在PHP开发中,表单提交和验证是非常常见的需求。优化表单提交和验证的过程可以提高用户体验,并增加系统的安全性。下面将介绍一些具体的优化技巧和代码示例,帮助开发者更好地处理表单提交和验证。合理使用POST方法在表单提交中,使用POST方法可以
2023-10-21

PHP中如何验证表单中的必需字段

这篇文章主要为大家展示了“PHP中如何验证表单中的必需字段”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“PHP中如何验证表单中的必需字段”这篇文章吧。PHP必需字段我们在日常注册时要填写资料中就
2023-06-25

PHP中如何处理表单验证错误?

PHP中如何处理表单验证错误?在开发Web应用程序时,表单的验证是非常重要的一步。通过验证表单数据,可以确保用户输入的数据符合预期的格式和要求,保证程序的准确性和安全性。当用户提交表单数据时,可能会发生一些错误,比如缺少必填字段、字段格式不
PHP中如何处理表单验证错误?
2023-12-09

Linux中如何实现验证邮件地址的正则表达式

这篇文章主要介绍Linux中如何实现验证邮件地址的正则表达式,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!邮件地址的规范来自于 RFC 5322 。有一个网站 emailregex.com 专门列出各种编程语言下的验
2023-06-16

jQuery如何监听表单字段验证事件?

jQuery监听表单字段验证事件jQuery提供多种方法监听表单字段验证事件,处理不正确输入并提供反馈。方法包括:change()事件:值更改时触发,用于检查有效性。focus()和blur()事件:获得/失去焦点时触发,用于实时检查/显示帮助。submit()事件:提交表单时触发,用于最终验证并阻止无效提交。jQueryValidation插件:提供丰富的验证规则和方法,简化验证过程。
jQuery如何监听表单字段验证事件?
2024-04-08

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录