niharika29 / deadlinkchecker
检查给定链接是否死链或活链的库
Requires
- php: >=7.3.0
- ext-curl: *
- ext-intl: *
- lib-curl: >=7.43.0
Requires (Dev)
- jakub-onderka/php-parallel-lint: v1.0.0
- mediawiki/mediawiki-codesniffer: v39.0.0
- phpunit/phpunit: ^9.6
Replaces
This package is not auto-updated.
Last update: 2024-09-15 01:27:23 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+许可证下分发。