如何解決域名后綴驗證難題?arubacao/tld-checker助你一臂之力

在Web開發(fā)中,經(jīng)常需要對用戶輸入的域名或郵箱地址進行驗證,其中一個關鍵環(huán)節(jié)就是檢查頂級域名(TLD)是否有效。手動維護一個最新的TLD列表非常麻煩,而且容易出錯。arubacao/tld-checker 這個 composer 包提供了一個優(yōu)雅的解決方案,它能夠根據(jù) IANA 官方的 The DNS Root Zone 數(shù)據(jù)庫來驗證 TLD 的有效性。

通過這個庫,你可以輕松驗證域名和郵箱地址的 tld 部分,確保其符合規(guī)范。該庫會將 iana 數(shù)據(jù)庫存儲在本地,并自動更新,保證 tld 列表始終是最新的。

安裝

使用 Composer 安裝 arubacao/tld-checker 非常簡單:

composer require arubacao/tld-checker

Composer在線學習地址:學習地址用法

安裝完成后,你可以使用 ArubacaoTldCheckerValidator 類中的靜態(tài)方法來驗證 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 結(jié)尾。
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 的擴展,你可以直接在驗證規(guī)則中使用 is_tld 和 ends_with_tld。

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

優(yōu)勢與應用

arubacao/tld-checker 的優(yōu)勢在于:

  • 準確性:基于 IANA 官方數(shù)據(jù)庫,保證 TLD 列表的準確性。
  • 自動更新:自動更新數(shù)據(jù)庫,無需手動維護。
  • 易于使用:簡單的 API,方便集成到項目中。
  • 國際化支持:支持國際化域名(IDN)。

在實際應用中,arubacao/tld-checker 可以用于:

  • 用戶注冊:驗證用戶注冊時填寫的郵箱地址和域名是否有效。
  • 表單驗證:在表單提交前驗證域名和郵箱地址的格式。
  • 數(shù)據(jù)清洗:清理數(shù)據(jù)庫中無效的域名和郵箱地址。

通過使用 arubacao/tld-checker,你可以避免手動維護 TLD 列表的麻煩,提高域名和郵箱地址驗證的準確性和效率,從而提升用戶體驗和數(shù)據(jù)質(zhì)量。

? 版權聲明
THE END
喜歡就支持一下吧
點贊15 分享