Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php TLD至少需要多长时间_Php_Dns_Filter Var - Fatal编程技术网

Php TLD至少需要多长时间

Php TLD至少需要多长时间,php,dns,filter-var,Php,Dns,Filter Var,我的一位客户抱怨说,使用filter\u var()和filter\u VALIDATE\u EMAIL选项,电子邮件地址如下: john.doe@example.c 被接受。所以我现在的问题是:TLD至少需要多长时间?我的意思是我们知道.com,.org,.us。但就我所知,像.g或.a这样的TLD并不存在 进一步的问题是: 他们会存在吗 它们是否已经存在于现实世界(WWW)中 “一个字符”TLD有一天会存在于WWW中的可能性有多大 为避免实现可能无法反映所有有效域名的算法,您可以在域名上

我的一位客户抱怨说,使用
filter\u var()
filter\u VALIDATE\u EMAIL
选项,电子邮件地址如下:

john.doe@example.c
被接受。所以我现在的问题是:TLD至少需要多长时间?我的意思是我们知道
.com
.org
.us
。但就我所知,像
.g
.a
这样的TLD并不存在

进一步的问题是:

  • 他们会存在吗
  • 它们是否已经存在于现实世界(WWW)中
  • “一个字符”TLD有一天会存在于WWW中的可能性有多大

为避免实现可能无法反映所有有效域名的算法,您可以在域名上使用该函数

比如:

$parts = explode('@', $email);
$domain = $parts[1];
if (!checkdnsrr($domain)) {
    echo 'Invalid domain';
}

为了避免实现可能无法反映所有有效域名的算法,您可以在域名上使用该函数

比如:

$parts = explode('@', $email);
$domain = $parts[1];
if (!checkdnsrr($domain)) {
    echo 'Invalid domain';
}

目前TLD至少有2个字母

您可以在所有可用TLD的列表中看到这一点

资料来源:


mishu提供的解决方案是一个很好的解决方案,因此您应该使用它

目前TLD至少有2个字母

您可以在所有可用TLD的列表中看到这一点

资料来源:


mishu提供的解决方案是一个很好的解决方案,因此您应该使用它

我想做些别的事情:检查域是否可以被解析,以及它是否有MX记录。如果没有,域无法接收电子邮件,您可以拒绝该电子邮件地址

还要检查函数,不要忘记umlautdomains(也称为idn或punycode域)用于该函数。下面是一个简单的脚本示例:

$parts = explode('@', $email);
if(!getmxrr(idn_to_ascii($parts[1]))) {
    echo 'Reject email address';
}

我会做一些其他的事情:检查域名是否可以被解析,是否有MX记录。如果没有,域无法接收电子邮件,您可以拒绝该电子邮件地址

还要检查函数,不要忘记umlautdomains(也称为idn或punycode域)用于该函数。下面是一个简单的脚本示例:

$parts = explode('@', $email);
if(!getmxrr(idn_to_ascii($parts[1]))) {
    echo 'Reject email address';
}

foo@bar
也是一个有效地址!如果我从我所在的位置发送到它,它可能无法解析,但它很可能在某个内部网中解析。
foo@bar
也是一个有效地址!如果我从我所在的位置发送到它,它可能无法解决,但它很可能在某个内部网中解决。谢谢您的回答。我将构建一个方法
validateEmail($email,$checkDns=true){}
,这样我可以在必要时打开DNS检查。请注意,这取决于DNS解析程序的可用性,也就是说,如果DNS服务器出现问题或intarwebs太忙,这可能会突然临时拒绝电子邮件。还是最好的解决方案。谢谢你的回答。我将构建一个方法
validateEmail($email,$checkDns=true){}
,这样我可以在必要时打开DNS检查。请注意,这取决于DNS解析程序的可用性,也就是说,如果DNS服务器出现问题或intarwebs太忙,这可能会突然临时拒绝电子邮件。不过,这仍然是最好的解决方案。这是最具体、最干净的解决方案。谢谢你的回答。这是最具体和最干净的解决方案。谢谢你的回答。