当前位置: 首页 > news >正文

php 验证邮箱的方法

     在开发 web系统时,经常在注册或者登陆或者邮箱保护的时候会需要验证邮箱,现在我来分享邮箱验证的一些小tips。(多说一句,现在基本用手机号注册登录是趋势了,匹配手机号我后面再讲了)。

  1.最开始也是最简单的,就是验证下邮箱的组成 ,思路: 3~50 (字母数字_)   + @ + 邮箱域名。

    以下为测试示例:     

$Email = '572752023@qq.com';
$reg = '#^\w{3,50}@\w{1,64}\.\w{2,5}$#';

if(preg_match($reg,$Email)){
    echo '验证通过';
}else{
    echo '错误的邮箱格式';
}

   这是最简单的邮箱验证了,主要是验证了 邮箱的格式是否正确了

     2. 后来 翻看php.net里面关于PHP自带的验证函数 filter_var()(准确来说,叫做 过滤器),更好用!!!  详细链接在此:http://php.net/manual/zh/function.filter-var.php。

    对于验证邮箱来说,这一句就够了,filter_var($email,FILTER_VALIDATE_EMAIL)  

$email =  '572752023@qq.com';
if(filter_var($email,FILTER_VALIDATE_EMAIL)){
    echo '验证通过';
}else{
    echo '错误的邮箱格式';
}

  以上基本能够验证基本的邮箱格式,但是并不知道邮箱的服务器是否可用,这时候就用checkdnsrr() 来检查 主机的DNS记录,以此判断邮箱是否存在, 

$Email = '572752023@qq.com';
$host = substr($Email,strpos($Email,'@')+1);
var_dump(checkdnsrr($host));

  3. 最后 如果碰到二级域名的邮箱,可以用 以下的 正则表达式来 判断,主要思路就是 多检查二次域名,如下:

  

$email =  '572752023@qq.com.cn';
$reg = '#([a-z0-9]*[-_.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[.][a-z]{2,3}([.][a-z]{2})?#i';
if(preg_match($reg,$email)){
    echo '验证通过';
}else{
    echo '错误的邮箱格式';
}

 

  以上为验证邮箱的简单记录,希望对各位有用~~~

     本文永久地址: http://www.cnblogs.com/guixiaoming/p/6429976.html

 

转载于:https://www.cnblogs.com/guixiaoming/p/6429976.html

相关文章:

  • centos7 修改默认字符集
  • mybatis的动态sql中collection与assoction
  • OpenStack学习:通过devstack安装openstacke mitaka
  • Nginx配置多个基于域名的虚拟主机+实验环境搭建+测试
  • 微信小程序把玩(二十九)video组件
  • Linux学习之路(一)命令基本格式
  • php查找字符串中第一个非0的位置截取
  • java学习1-环境搭建
  • XML与JSON的区别?各自有哪些优缺点?
  • android手机rootROM下载地址
  • 顶级程序员的心得
  • 多功能PCIE交换机之十:单NT的恢复
  • c++重载和
  • 为什么文件名要小写?
  • 【Leetcode】101. 对称二叉树
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • conda常用的命令
  • Consul Config 使用Git做版本控制的实现
  • co模块的前端实现
  • MyEclipse 8.0 GA 搭建 Struts2 + Spring2 + Hibernate3 (测试)
  • PAT A1017 优先队列
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • python学习笔记 - ThreadLocal
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • text-decoration与color属性
  • vue+element后台管理系统,从后端获取路由表,并正常渲染
  • 创建一种深思熟虑的文化
  • 今年的LC3大会没了?
  • 面试遇到的一些题
  • 项目实战-Api的解决方案
  • 译自由幺半群
  • postgresql行列转换函数
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • (10)ATF MMU转换表
  • (2015)JS ES6 必知的十个 特性
  • (27)4.8 习题课
  • (NSDate) 时间 (time )比较
  • (二)linux使用docker容器运行mysql
  • (附源码)apringboot计算机专业大学生就业指南 毕业设计061355
  • (附源码)spring boot火车票售卖系统 毕业设计 211004
  • (附源码)ssm失物招领系统 毕业设计 182317
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (七)c52学习之旅-中断
  • (十六)Flask之蓝图
  • (已解决)报错:Could not load the Qt platform plugin “xcb“
  • (转)socket Aio demo
  • .Net Attribute详解(上)-Attribute本质以及一个简单示例
  • .NET Core 和 .NET Framework 中的 MEF2
  • .net项目IIS、VS 附加进程调试
  • .net专家(高海东的专栏)
  • /dev/VolGroup00/LogVol00:unexpected inconsistency;run fsck manually
  • @cacheable 是否缓存成功_让我们来学习学习SpringCache分布式缓存,为什么用?
  • [ vulhub漏洞复现篇 ] GhostScript 沙箱绕过(任意命令执行)漏洞CVE-2019-6116