如何解决域名后缀验证难题?arubacao/tld-checker助你一臂之力

在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。

  • Validator::isTld(String $tld): 验证给定的字符串是否为有效的 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。

$request->validate([     'tld' => 'required|is_tld',     'email' => 'required|ends_with_tld' ]);

优势与应用

arubacao/tld-checker 的优势在于:

  • 准确性:基于 IANA 官方数据库,保证 TLD 列表的准确性。
  • 自动更新:自动更新数据库,无需手动维护。
  • 易于使用:简单的 API,方便集成到项目中。
  • 国际化支持:支持国际化域名(IDN)。

在实际应用中,arubacao/tld-checker 可以用于:

通过使用 arubacao/tld-checker,你可以避免手动维护 TLD 列表的麻烦,提高域名和邮箱地址验证的准确性和效率,从而提升用户体验和数据质量。

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享