在Web开发中,经常需要对用户输入的域名或邮箱地址进行验证,其中一个关键环节就是检查顶级域名(TLD)是否有效。手动维护一个最新的TLD列表非常麻烦,而且容易出错。arubacao/tld-checker 这个 composer 包提供了一个优雅的解决方案,它能够根据 IANA 官方的 The DNS Root Zone 数据库来验证 TLD 的有效性。
通过这个库,你可以轻松验证域名和邮箱地址的 tld 部分,确保其符合规范。该库会将 iana 数据库存储在本地,并自动更新,保证 tld 列表始终是最新的。
安装
使用 Composer 安装 arubacao/tld-checker 非常简单:
composer require arubacao/tld-checker
Composer在线学习地址:学习地址用法
安装完成后,你可以使用 ArubacaoTldCheckerValidator 类中的静态方法来验证 TLD。
use ArubacaoTldCheckerValidator; Validator::isTld('com'); // true Validator::isTld('CN'); // true (大小写不敏感) Validator::isTld('москва'); // true (支持国际化域名 IDN | unicode) Validator::isTld('XN--CZRS0T'); // true (支持编码后的 IDN | 商店) Validator::isTld('.org'); // true (允许带点前缀) Validator::isTld('apricot'); // false
- Validator::endsWithTld(string $domain): 验证给定的字符串是否以有效的 TLD 结尾。
use ArubacaoTldCheckerValidator; Validator::endsWithTld('apple.com'); // true Validator::endsWithTld('NEWS.CN'); // true (大小写不敏感) Validator::endsWithTld('müller.vermögensberater'); // true (支持国际化域名 IDN | unicode) Validator::endsWithTld('xn--mller-kva.xn--vermgensberater-ctb');// true (支持编码后的 IDN | müller.vermögensberater) Validator::endsWithTld('farming.apricot'); // false
laravel 集成
如果你使用 Laravel 框架,arubacao/tld-checker 还提供了 Laravel Validator 的扩展,你可以直接在验证规则中使用 is_tld 和 ends_with_tld。
优势与应用
arubacao/tld-checker 的优势在于:
- 准确性:基于 IANA 官方数据库,保证 TLD 列表的准确性。
- 自动更新:自动更新数据库,无需手动维护。
- 易于使用:简单的 API,方便集成到项目中。
- 国际化支持:支持国际化域名(IDN)。
在实际应用中,arubacao/tld-checker 可以用于:
通过使用 arubacao/tld-checker,你可以避免手动维护 TLD 列表的麻烦,提高域名和邮箱地址验证的准确性和效率,从而提升用户体验和数据质量。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END