php-domain-name
完善的PHP域名验证库
使用php-domain-name可以对域名字符串做完善的验证。从此,不再需要使用简陋的域名验证代码。 验证通过后,域名的各个字段值都保存到了DomainName类对象。
特点
内含完整的域名数据,来源于TLDsDb 严格的域名格式验证。比如,对以下域名做验证,结果都会是无效 com foobar.foobar .foobar.com -.foobar.com baz-.foobar.com -baz.foobar.com %.foobar.com f.com -foobar.com foobar-.com foobar%.com foobar.baz aekui5phea2Eeyeelaijiex5ahniefaitied5Cohpei1Yoh6chaingohwie9pao123.com aekui5phea2Eeyeelaijiex5ahniefaitied5Cohpei1Yoh6chaingohwie9pao.aekui5phea2Eeyeelaijiex5ahniefaitied5Cohpei1Yoh6chaingohwie9pao.aekui5phea2Eeyeelaijiex5ahniefaitied5Cohpei1Yoh6chaingohwie9pao.aekui5phea2Eeyeelaijiex5ahniefaitied5Cohpei1Yoh6chaingohwie9pao.com 支持获取域名字段信息。比如,可以从www.foobar.com.cn
中,分别得到www
、foobar
、com
、cn
支持英文域名、中文域名、中文域名转码等等。比如:
foobar.com
时尚.中国
xn--9et52u.xn--fiqs8s
кто.рф
foobar.مصر
用法
示例
<?php
require_once __DIR__ . '/src/domain_name.php';
try {
$dn = DomainNamedetect('foobar.com');
$f_tlds = $dn->getFeildTopLevelDomains();
$f_host = $dn->getFeildHosts();
echo '域 名: ' . $dn->getName() . PHP_EOL;
echo "域名字 段: " . $dn->getFeildDomainName() . PHP_EOL;
echo "顶级域字段: " . $f_tlds[0] . PHP_EOL . PHP_EOL;
$dn = DomainNamedetect('www.foobar.com.cn');
$f_tlds = $dn->getFeildTopLevelDomains();
$f_host = $dn->getFeildHosts();
echo '域 名: ' . $dn->getName() . PHP_EOL;
echo "主机字 段: " . $f_host[0] . PHP_EOL;
echo "域名字 段: " . $dn->getFeildDomainName() . PHP_EOL;
echo "顶级域字段: " . $f_tlds[0] . PHP_EOL;
echo "顶级域字段: " . $f_tlds[1] . PHP_EOL . PHP_EOL;
$dn = DomainNamedetect('时尚.中国');
$f_tlds = $dn->getFeildTopLevelDomains();
$f_host = $dn->getFeildHosts();
echo '域 名: ' . $dn->getName() . PHP_EOL;
echo "域名字 段: " . $dn->getFeildDomainName() . PHP_EOL;
echo "顶级域字段: " . $f_tlds[0] . PHP_EOL . PHP_EOL;
$dn = DomainNamedetect('xn--9et52u.xn--fiqs8s');
$f_tlds = $dn->getFeildTopLevelDomains();
echo '域 名: ' . $dn->getName() . PHP_EOL;
echo "域名字 段: " . $dn->getFeildDomainName() . PHP_EOL;
echo "顶级域字段: " . $f_tlds[0] . PHP_EOL . PHP_EOL;
$dn = DomainNamedetect('!@#$foobar.com');
} catch (DomainNameDomainNameException $e) {
echo '发生错误:' . $e->getMessage() . PHP_EOL;
}
示例输出
域 名: foobar.com
域名字 段: foobar
顶级域字段: .com
域 名: www.foobar.com.cn
主机字 段: www
域名字 段: foobar
顶级域字段: .com
顶级域字段: .cn
域 名: 时尚.中国
域名字 段: 时尚
顶级域字段: .中国
域 名: xn--9et52u.xn--fiqs8s
域名字 段: xn--9et52u
顶级域字段: .xn--fiqs8s
发生错误:Invalid domain name.
域名规则
域名可以包含至少两个字段,比如file.download.foobar.com
,可以描述为:
file
表示主机
字段download
表示主机
字段foobar
表示域名
字段.com
表示(通用)顶级域
规则:
任何字段不能包含A-Z
、a-z
、0-9
以及-
以外的字符
域名总长度不大于253
任何字段长度不大于63
域名字段长度大于1
顶级域字段长度大于2
至少包含一个域名字段,一个顶级域字段
任何字段不能以中横线(“-”)开头或结尾
域名不能以点开头
顶级域字段值必须是有效的Top-level domain
域名相关资料
rfc1035(DOMAIN NAMES - IMPLEMENTATION AND SPECIFICATION) Domain Name System Domain name List of Internet top-level domains Top-level domain Root Zone Database
版权声明:
1、该文章(资料)来源于互联网公开信息,我方只是对该内容做点评,所分享的下载地址为原作者公开地址。2、网站不提供资料下载,如需下载请到原作者页面进行下载。
3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考学习用!
4、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。