TLDExtract

2025-12-07 0 306

弃用

考虑使用https://gith**ub.c*om/jeremykendall/php-domain-parser作为替代方案。

TLDExtract

TLDExtract将GTLD或CCTLD(通用或国家代码上层域)与注册域和URL的子域例如域解析器)分开。例如,假设您只需要“ http://www.*g*oo*gle.com”的“ Google”部分。


每个人都错了。在“。”上分裂只有当您考虑简单的EG .com域时,就可以使用最后两个元素才能达到很长的距离。例如,思考解析http://forums.*b**bc.co.uk例如:上面的天真分裂方法将使您作为域名和\’uk\’作为TLD,而不是“ BBC”和“ CO.UK”。

另一方面, TLDExtract根据公共后缀列表来查找当前活着的gtlds和CCTLD的样子。因此,鉴于URL,它知道其域的子域以及其国家代码的域名。

TLDExtract\\Result)#34 (3) {
[\”subdomain\”:\”LayerShifter\\ TLDExtract \\Result\”:private]=>
string(11) \”forums.news\”
[\”hostname\”:\”LayerShifter\\ TLDExtract \\Result\”:private]=>
string(3) \”cnn\”
[\”suffix\”:\”LayerShifter\\ TLDExtract \\Result\”:private]=>
string(3) \”com\”
}\”>

 $ result = tld_extract ( \' http://forums.ne**ws*.cnn.com/ \' );
var_dump ( $ result );

object ( LayerShifter \\ TLDExtract \\Result) #34 (3) {
  [ \" subdomain \" :\" LayerShifter \\ TLDExtract \\ Result \" :private]=>
  string(11) \" forums.news\"
  [ \" hostname \" :\" LayerShifter \\ TLDExtract \\ Result \" :private]=>
  string(3) \" cnn\"
  [ \" suffix \" :\" LayerShifter \\ TLDExtract \\ Result \" :private]=>
  string(3) \" com\"
}

Result实现了ArrayAccess接口,因此您可以简单地访问其结果。

 var_dump ( $ result [ \' subdomain \' ]);
string ( 11 ) \" forums.news \"
var_dump ( $ result [ \' hostname \' ]);
string ( 3 ) \" cnn \"
var_dump ( $ result [ \' suffix \' ]);
string ( 3 ) \" com \"

另外,您可以简单地将结果转换为JSON。

 var_dump ( $ result -> toJson ());
string ( 54 ) \" { \" subdomain\": \" forums.news \" ,\"hostname\":\"cnn\",\"suffix\":\"com\"}\"

该软件包符合PSR-1,PSR-2,PSR-4。如果您注意到合规性监督,请通过拉动请求发送补丁。

TLDExtract是否向公共后缀列表网站提出请求?

TLDExtract使用从tlddatabase中生成的数据库,该数据库从公共后缀列表生成并定期更新。它没有提出任何HTTP请求来解析或验证域。

要求

支持以下版本的PHP。

  • PHP 5.5
  • PHP 5.6
  • PHP 7.0
  • PHP 7.1
  • PHP 7.2
  • PHP 7.3
  • HHVM

安装

通过作曲家

$ composer require layershifter/tld-extract

其他结果方法

LayerShifter\\ TLDExtract \\Result具有一些可用的方法:

TLDExtract\\Extract();

# For domain \’shop.github.com\’

$result = $extract->parse(\’shop.github.com\’);
$result->getFullHost(); // will return (string) \’shop.github.com\’
$result->getRegistrableDomain(); // will return (string) \’github.com\’
$result->isValidDomain(); // will return (bool) true
$result->isIp(); // will return (bool) false

# For IP \’192.168.0.1\’

$result = $extract->parse(\’192.168.0.1\’);
$result->getFullHost(); // will return (string) \’192.168.0.1\’
$result->getRegistrableDomain(); // will return null
$result->isValidDomain(); // will return (bool) false
$result->isIp(); // will return (bool) true\”>

 $ extract = new LayerShifter \\ TLDExtract \\ Extract ();

# For domain \'shop.github.com\'

$ result = $ extract -> parse ( \' shop.github.com \' );
$ result -> getFullHost (); // will return (string) \'shop.github.com\'
$ result -> getRegistrableDomain (); // will return (string) \'github.com\'
$ result -> isValidDomain (); // will return (bool) true
$ result -> isIp (); // will return (bool) false

# For IP \'192.168.0.1\'

$ result = $ extract -> parse ( \' 192.168.0.1 \' );
$ result -> getFullHost (); // will return (string) \'192.168.0.1\'
$ result -> getRegistrableDomain (); // will return null
$ result -> isValidDomain (); // will return (bool) false
$ result -> isIp (); // will return (bool) true 

自定义数据库

默认情况下,软件包正在使用TLDDATABASE软件包中的数据库,但是您可以简单地覆盖此行为:

 new LayerShifter \\ TLDExtract \\ Extract ( __DIR__ . \' /cache/mydatabase.php \' );

有关更多详细信息以及如何保持数据库更新tlddatabase。

实施自己的结果

默认情况下,解析后,您将收到LayerShifter\\ TLDExtract \\Result类的对象,但是有时您需要自己的方法或其他功能。

您可以创建自己的类,该类实现LayerShifter\\ TLDExtract \\ResultInterface并将其用作分析结果。

TLDExtract\\ResultInterface {}

new LayerShifter\\ TLDExtract \\Extract(null, CustomResult::class);\”>

 class CustomResult implements LayerShifter \\ TLDExtract \\ResultInterface {}

new LayerShifter \\ TLDExtract \\ Extract ( null , CustomResult::class);

解析模式

软件包具有三种解析方式:

  • 允许ICANN后缀(域是由ICANN或IANA根区数据库的一部分委派的域);
  • 允许私人域(域是由域持有人提交给公共后缀列表的修正案,以表达他们如何操作域安全策略);
  • 允许自定义(例如不在列表中但可以使用的域,例如:mycompany等)。

默认情况下,要与公共后缀列表概念套件保持在所有这些模式中运行,但是您可以轻松地更改此行为:

TLDExtract\\Extract;

new Extract(null, null, Extract::MODE_ALLOW_ICANN);
new Extract(null, null, Extract::MODE_ALLOW_PRIVATE);
new Extract(null, null, Extract::MODE_ALLOW_NOT_EXISTING_SUFFIXES);
new Extract(null, null, Extract::MODE_ALLOW_ICANN | Extract::MODE_ALLOW_PRIVATE);\”>

 use LayerShifter \\ TLDExtract \\ Extract ;

new Extract ( null , null , Extract:: MODE_ALLOW_ICANN );
new Extract ( null , null , Extract:: MODE_ALLOW_PRIVATE );
new Extract ( null , null , Extract:: MODE_ALLOW_NOT_EXISTING_SUFFIXES );
new Extract ( null , null , Extract:: MODE_ALLOW_ICANN | Extract:: MODE_ALLOW_PRIVATE );

更改日志

有关更多信息,请参阅ChangElog最近发生了什么变化。

测试

$ composer test 

贡献

有关详细信息,请参阅贡献和行为。

执照

该库在Apache 2.0许可下发布。请参阅许可证文件以获取更多信息。

下载源码

通过命令行克隆项目:

git clone https://github.com/layershifter/TLDExtract.git

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

左子网 开发教程 TLDExtract https://www.zuozi.net/31895.html

fastcgi client rs
上一篇: fastcgi client rs
eisk.webapi
下一篇: eisk.webapi
常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、描述:源码描述(含标题)与实际源码不一致的(例:货不对板); 2、演示:有演示站时,与实际源码小于95%一致的(但描述中有”不保证完全一样、有变化的可能性”类似显著声明的除外); 3、发货:不发货可无理由退款; 4、安装:免费提供安装服务的源码但卖家不履行的; 5、收费:价格虚标,额外收取其他费用的(但描述中有显著声明或双方交易前有商定的除外); 6、其他:如质量方面的硬性常规问题BUG等。 注:经核实符合上述任一,均支持退款,但卖家予以积极解决问题则除外。
查看详情
  • 1、左子会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、左子无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在左子上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于左子介入快速处理。
查看详情

相关文章

猜你喜欢
发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务