PHP 验证Email的函数
2024-08-31 08:56:19
<?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
;
}
?>
最新文章
- DataGrid中的事件和方法
- MFC 不让程序显示在任务栏上
- javascript、正则的验证
- inline,block,inline-block的区别
- 10年程序员谈.Net程序员的职业规划(图/文) (转载)
- 【Android测试】【随笔】模拟双指点击
- BufferedInputStream/BufferedOutputStream复制文件
- Oracle 11g Windows 迁移至 Linux
- [swustoj 411] 售货员的难题
- JavaScript:int string 相互转化
- 利用 HTML5 WebGL 构建的 3D 拓扑图
- ssm简单搭建
- lua语言自学知识点----简单了解
- 计算机网络原理和OSI模型与TCP模型
- C# Queue 和Stack的实现
- 利用 MessageRPC 和 ShareMemory 来实现 分布式并行计算
- Android 开源项目 eoe 社区 Android 客户端
- font-face 跨域解决
- Git小抄
- lock与sychronized关键字