ivankristianto/tld-extract

TLDExtract 包从 layershifter/tld-extract 分支而来,以支持 PHP 5.4

1.2.5 2018-06-19 12:09 UTC

This package is auto-updated.

Last update: 2024-08-26 05:24:59 UTC


README

Latest Stable Version Build Status Total Downloads

Scrutinizer Code Quality Code Coverage

这是一个基于 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 文件。