PHP 验证Email的函数
<?php
function
validateEmail(
$email
)
{
$isValid
= true;
$atIndex
=
strrpos
(
$email
,
"@"
);
if
(
is_bool
(
$atIndex
) && !
$atIndex
)
{
$isValid
= false;
}
else
{
$domain
=
substr
(
$email
,
$atIndex
+1);
$local
=
substr
(
$email
, 0,
$atIndex
);
$localLen
=
strlen
(
$local
);
$domainLen
=
strlen
(
$domain
);
if
(
$localLen
< 1 ||
$localLen
> 64)
{
// local part length exceeded
$isValid
= false;
}
else
if
(
$domainLen
< 1 ||
$domainLen
> 255)
{
// domain part length exceeded
$isValid
= false;
}
else
if
(
$local
[0] ==
'.'
||
$local
[
$localLen
-1] ==
'.'
)
{
// local part starts or ends with '.'
$isValid
= false;
}
else
if
(preg_match(
'/\\.\\./'
,
$local
))
{
// local part has two consecutive dots
$isValid
= false;
}
else
if
(!preg_match(
'/^[A-Za-z0-9\\-\\.]+$/'
,
$domain
))
{
// character not valid in domain part
$isValid
= false;
}
else
if
(preg_match(
'/\\.\\./'
,
$domain
))
{
// domain part has two consecutive dots
$isValid
= false;
}
else
if
(!preg_match(
'/^(\\\\.|[A-Za-z0-9!#%&`_=\\/$\'*+?^{}|~.-])+$/'
,
str_replace
(
"\\\\"
,
""
,
$local
)))
{
// character not valid in local part unless
// local part is quoted
if
(!preg_match(
'/^"(\\\\"|[^"])+"$/'
,
str_replace
(
"\\\\"
,
""
,
$local
)))
{
$isValid
= false;
}
}
if
(
$isValid
&& !(
checkdnsrr
(
$domain
,
"MX"
) ||
checkdnsrr
(
$domain
,
"A"
)))
{
// domain not found in DNS
$isValid
= false;
}
}
return
$isValid
;
}
?>
PHP 验证Email的函数的更多相关文章
- PHP 表单验证 - 验证 E-mail 和 URL
----------------------------------------------------------------------------- 本节展示如何验证名字.电邮和 URL. -- ...
- javascript使用正则表达式验证Email地址
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 如何验证 Email 地址:SMTP 协议入门教程
http://www.ruanyifeng.com/blog/2017/06/smtp-protocol.html 作者: 阮一峰 日期: 2017年6月25日 Email 是最常用的用户识别手段 ...
- 验证email是否合法
https://buluo.qq.com/p/detail.html?bid=339910&pid=6675390-1514450689&from=grp_sub_obj 场景1:验证 ...
- SQL Server 验证身份证合法性函数(使用VBScript.RegExp)
原文:SQL Server 验证身份证合法性函数(使用VBScript.RegExp) 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/wzy0623 ...
- 《精通正则表达式》笔记 --- “验证”Email格式
写一个正则表达式的三个步骤: 理解需求并找出你需要验证的数据的特征: 写一个还可以用的正则表达式: 看看能不能达到你的目的,同时想想会不会匹配到一些不想要的数据: [可选]性能优化 我觉得写一个正则表 ...
- CXF 入门:创建一个基于WS-Security标准的安全验证(CXF回调函数使用,)
http://jyao.iteye.com/blog/1346547 注意:以下客户端调用代码中获取服务端ws实例,都是通过CXF 入门: 远程接口调用方式实现 直入正题! 以下是服务端配置 ==== ...
- php 检查email电子邮件函数(奇葩写法)
以前写的一个PHP表单电子邮件发送程序,其中采用如下方法来验证电子邮件地址格式是否正确: 代码如下 复制代码 eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0 ...
- 文本输入框和下拉菜单特效-用正则表达式验证E-mail格式
———————————————————————————— <script type="text/javascript"> ...
随机推荐
- IO流—其他流
内存操作流 这个流不关联任何文件,只能在内存中数据,自己在内存中维护着一个缓冲区,我们可以往他维护的缓冲区不断的写入数据,也可以从缓冲区中取出我们写入的数据 ByteArrayOutputStream ...
- 修改Mac新建文件、文件夹的默认权限
Mac 新建文件和文件夹默认 当前用户才有读和写的权限,其他用户只有读的权限 修改Mac新建文件.文件夹的默认权限的步骤如下: 1.打开 “终端” 2.在终端中输入以下命令: 创建文件时,从默认值(对 ...
- prometheus使用postgresql-adapter连接postgresql
概述 Prometheus使用postgresql需要使用postgresql-adapter进行数据转换.在安装postgresql-adapter之前需要安装2个扩展:pg_prometheus和 ...
- 蚂蚁金服2019实习生面经总结(已拿口头offer)
一面 (37 分钟左右) 一面是上海的小哥打来的,3.12 号中午确认的内推,下午就打来约时间了,也是唯一一个约时间的面试官.约的晚上八点.紧张的一比,人生第一次面试就献给了阿里. 幸运的是一面的小哥 ...
- apache设置外网访问的方法 (服务器)
环境:windows server 2012 R2 apache 2.4 首先,找到apache配置文件httpd.conf,找到配置: 代码展示: <directory /> optio ...
- H5+asp.net 微信开发 遇到过的坑
一.微信授权登录 1. 根据code 获取_access_tokens 2. 根据取到的openid和_access_tokens获取用户信息最神奇的是我用我自己的微信账号测试,一开始还可以取到tok ...
- 从0开始编写dapper核心功能、压榨性能、自己动手丰衣足食
我偶然听说sqlsugar的性能比dapper强.对此我表示怀疑(由于我一直使用的dapper存在偏见吧),于是自己测试了sqlsugar.freesql.dapper发现他们的给我的结果是 sqls ...
- wangeditor视频
wangeditor网址http://www.wangeditor.com/ 目前使用的是3.11版本 使用步骤 1.引用wangEditor.min.js 2.代码 2.1 取得函数var E = ...
- Git 管理版本/回退
参考链接:https://www.liaoxuefeng.com/wiki/896043488029600/896954074659008 Git status命令可以让我们时刻掌握仓库当前的状态,比 ...
- 颜色rgba和16进制
今天阅读代码的时候看到了一个实现颜色渐变的效果,不同于以往使用函数实现的颜色渐变,这个是规律的递增rgba里面的几个参数完成的,看起来就像是等差数列一样.没想到还能这样来,简单的了解了一下 rgba的 ...