niharika29/deadlinkchecker

检查给定链接是否死链或活链的库

v1.8.3.7 2023-09-19 20:51 UTC

README

维护者: Cyberpower678

需求: PHP 7.3 或更高版本

这是一个PHP库,通过cURL检测互联网上的URL是否存活。它包括以下功能

  • 支持HTTP, HTTPS, FTP, MMS和RTSP URL
  • 支持TOR
  • 支持国际化域名
  • 软404的基本检测
  • 为了优化性能,它最初只执行一个只获取头部的页面请求(CURLOPT_NOBODY)。如果该请求失败,然后它将尝试执行一个正常的完整正文页面请求。
  • 同时检查一批URL以提高效率

概述

checkIfDead库是一个PHP库,用于评估网络和深网中URL的状态。它通过接收一个或多个URL作为输入,并发检查它们来提高响应时间。

它可以处理格式正确和错误的URL,并在错误的输入上进行基本合理性检查和错误纠正。所有输入都通过清理器进行标准化,以确保curl库能够正确与目标通信。

如果默认设置,库将模拟网络浏览器请求并跟随重定向到目的地。

安装

使用composer: 将以下内容添加到您的项目中的composer.json文件中

{
  "require": {
     "wikimedia/deadlinkchecker": "dev-master"
  }
}

然后运行'composer update'。

或者使用git

$ git clone https://github.com/wikimedia/DeadlinkChecker.git

基本用法

检查单个链接
$deadLinkChecker = new checkIfDead();
$url = 'https://en.wikipedia.org';
$exec = $deadLinkChecker->isLinkDead( $url );
echo var_export( $exec );

打印

false
检查链接数组
$deadLinkChecker = new checkIfDead();
$urls = [ 'https://en.wikipedia.org/nothing', 'https://en.wikipedia.org' ];
$exec = $deadLinkChecker->areLinksDead( $urls );
echo var_export( $exec );

打印

array (
  'https://en.wikipedia.org/nothing' => true,
  'https://en.wikipedia.org' => false,
)

注意,如果它们无法确定链接是否存活,这些函数将返回null

高级用法

您可以通过将参数传递给构造函数来控制页面请求超时所需的时间。要将只获取头部的页面请求设置为10秒超时,并将完整页面请求设置为20秒超时,请使用以下

$deadLinkChecker = new checkIfDead( 10, 20 );

除了控制查询超时之外,还可以将自定义用户代理传递给库,如下所示

$deadLinkChecker = new checkIfDead( 10, 20, "Custom Agent" );

默认情况下,相同域名的多个URL将排队依次查询,以尊重主机。但是,可以通过以下方式禁用此操作,以便所有URL并发查询

$deadLinkChecker = new checkIfDead( 10, 20, "Custom Agent", false );

您可以通过增加输出的详细程度来跟踪库的操作过程。

$deadLinkChecker = new checkIfDead( 10, 20, "Custom Agent", true, true );

最后,由于库支持TOR请求,环境需要一个工作的SOCKS5代理来发送请求。库使用系统默认值查找SOCKS5代理,但可以手动指定代理。

$deadLinkChecker = new checkIfDead( 10, 20, "Custom Agent", true, false, "proxy.host", proxy_port );

获取上次检查的一批URL的详细信息

在检查了一批URL之后,您可以使用$deadLinkChecker->getErrors()来获取在过程中遇到的curl错误,并使用$deadLinkChecker->getRequestDetails()来获取上次批次中检查的所有URL的curl请求详细信息。

其他函数

清理脏URL并允许它们被标准化,以便与不同的HTTP客户端正确对齐

$deadLinkChecker->sanitizeURL( "https://example.com/", $stripFragment );

默认情况下,$stripFragment为false。当设置为true时,URL片段将被删除。

由于PHP倾向于解析包含UTF-8字符的URL时失败,您可以使用库的parseURL方法。

$deadLinkChecker->parseURL( $url );

许可证

此代码在GNU GPLv3+许可证下分发。