ivankristianto / tld-extract
TLDExtract 包从 layershifter/tld-extract 分支而来,以支持 PHP 5.4
Requires
- php: ^5.5.0 || ^7.0
- layershifter/tld-database: ^1.0
- layershifter/tld-support: ^1.1
- true/punycode: ^2.1.1
Requires (Dev)
- phpmd/phpmd: @stable
- phpunit/phpunit: ^4.8 || ^5.0
- squizlabs/php_codesniffer: ~2.0
README
这是一个基于 layershifter/tld-extract
分支的项目,以支持 PHP 5.4.0。
要支持 PHP 5.4.0,请使用版本 ^0.2.2
或使用以下 composer 命令
composer require ivankristianto/tld-extract "^0.2.2"
TLDExtract
准确地将 gTLD 或 ccTLD(通用或国家代码顶级域)从 URL 的注册域名和子域名中分离出来。例如,如果你只想获取 'http://www.google.com' 中的 'google' 部分。
每个人都会做错。 在 '.' 上分割并取最后两个元素,只有在考虑简单的 .com 域名时才有效。例如,解析 http://forums.bbc.co.uk:上述简单的分割方法会给出 'co' 作为域名和 'uk' 作为 TLD,而不是 'bbc' 和 'co.uk'。
Extract
通过查找根据 公共后缀列表 当前活跃的 TLD 来知道所有 gTLD 和 ccTLD 的样子。因此,给定一个 URL,它知道它的子域和域名,以及域名和国家代码。
$result = Extract::get('http://forums.news.cnn.com/');
var_dump($result);
object(LayerShifter\TLDExtract\Result)#34 (3) {
["subdomain":"LayerShifter\TLDExtract\Result":private]=>
string(11) "forums.news"
["domain":"LayerShifter\TLDExtract\Result":private]=>
string(3) "cnn"
["tld":"LayerShifter\TLDExtract\Result":private]=>
string(3) "com"
}
Result
实现了 ArrayAccess 接口,因此您可以简单地访问其结果。
var_dump($result['subdomain']);
string(11) "forums.news"
var_dump($result['domain']);
string(3) "cnn"
var_dump($result['tld']);
string(3) "com"
您还可以将结果简单地转换为 JSON。
var_dump($result->toJson());
string(54) "{"subdomain":"forums.news","domain":"cnn","tld":"com"}"
此包基于 w-shadow 的代码,它是 Python 模块 的移植。
兼容的 PHP 版本
- PHP 5.4
- PHP 5.5
- PHP 5.6
- PHP 7
- HHVM
安装
通过 Composer 获取最新版本
$ composer require layershifter/tld-extract
关于高级用法和缓存的说明
高级用法
要覆盖结果中返回的对象,您可以创建自己的类,该类实现了 \LayerShifter\TLDExtract\Interfaces\ResultInterface
。
例如
class OwnResult implements \LayerShifter\TLDExtract\Interfaces\ResultInterface {
}
Extract::setResultClass('OwnResult');
缓存
默认情况下,TLDExtract
从 publicsuffix.org 下载 TLD 列表,将其缓存并永不更新。
您可以通过将 $fetch 设置为 true
来覆盖此行为
Extract::setFetch(true);
此外,您可以通过调用方法手动更新 TLD 缓存(推荐)
Extract::updateCache();
此方法返回一个布尔值,指示是否处理了结果。
默认情况下,缓存文件将存储在 /path/to/TLDExtract/cache/.tld_set
,您可以通过调用来设置缓存文件
Extract::setCacheFile('/path/to/your/dir/cache.file');
许可证
本项目是开源软件,根据 MIT 许可证授权。
有关更多信息,请参阅 LICENSE 文件。