在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。
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。
優(yōu)勢與應用
arubacao/tld-checker 的優(yōu)勢在于:
- 準確性:基于 IANA 官方數(shù)據(jù)庫,保證 TLD 列表的準確性。
- 自動更新:自動更新數(shù)據(jù)庫,無需手動維護。
- 易于使用:簡單的 API,方便集成到項目中。
- 國際化支持:支持國際化域名(IDN)。
在實際應用中,arubacao/tld-checker 可以用于:
通過使用 arubacao/tld-checker,你可以避免手動維護 TLD 列表的麻煩,提高域名和郵箱地址驗證的準確性和效率,從而提升用戶體驗和數(shù)據(jù)質(zhì)量。