arubacao/tld-checker

PHP顶级域名(TLD)验证库

1.2.251 2024-09-22 04:01 UTC

This package is auto-updated.

Last update: 2024-09-22 04:02:43 UTC


README

Latest Version on Packagist Build Status Codecov Quality Score Total Downloads

此包允许通过iana.org的DNS根区域数据库验证顶级域名。
用于验证例如 域名电子邮件地址

DNS根区域是DNS层次结构的最高部分,涉及将“顶级域名”的管理责任委托出去,顶级域名是域名名的最后一个部分,如.com、.uk和.nz。

数据库存储在本地,并自动更新为新版本。

安装

使用composer安装此包

composer require arubacao/tld-checker

Laravel

如果您想使用arubacao/tld-checkerLaravel验证器,您还必须注册服务提供者
(仅适用于Laravel <=5.4,对于Laravel >=5.5 自动发现已启用)。

// config/app.php

'providers' => [
    // Other Service Providers
    Arubacao\TldChecker\TldCheckerServiceProvider::class,
],

注意事项

  • arubacao/tld-checker对PHP 7.0 - 8.0 & Laravel 5.0 - 8.x进行过功能性和全面测试。

用法

使用Validator::isTld()检查TLD

use Arubacao\TldChecker\Validator;

Validator::isTld('com');        // true
Validator::isTld('CN');         // true (case insensitiv)
Validator::isTld('москва');     // true (works with internationalized domain name (IDN) | unicode)
Validator::isTld('XN--CZRS0T'); // true (works with encoded IDN | 商店)
Validator::isTld('.org');       // true (allows dot prefix)
Validator::isTld('apricot');    // false

使用Validator::endsWithTld()检查字符串是否以有效的TLD结尾

use Arubacao\TldChecker\Validator;

Validator::endsWithTld('apple.com');                            // true
Validator::endsWithTld('NEWS.CN');                              // true (case insensitiv)
Validator::endsWithTld('müller.vermögensberater');              // true (works with internationalized domain name (IDN) | unicode)
Validator::endsWithTld('xn--mller-kva.xn--vermgensberater-ctb');// true (works with encoded IDN | müller.vermögensberater)
Validator::endsWithTld('farming.apricot');                      // false

此包扩展了Laravel验证器,增加了这两个方法

  • is_tld
  • ends_with_tld

用法如下

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

测试

composer test

贡献

请参阅CONTRIBUTING以获取详细信息。

致谢

许可证

MIT许可证(MIT)。请参阅许可证文件以获取更多信息。