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中,分别得到wwwfoobarcomcn 支持英文域名、中文域名、中文域名转码等等。比如: 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-Za-z0-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、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。