vipnytt / cleanparam-url-filter
清理参数URL过滤类 - 查找并删除任何重复的URL
0.1
2016-02-07 16:52 UTC
Requires
- php: >=5.4.0
Requires (Dev)
- codeclimate/php-test-reporter: >=0.2.0
- phpunit/phpunit: >=4.0
This package is auto-updated.
Last update: 2024-09-05 05:32:09 UTC
README
清理参数URL过滤类
PHP类,用于过滤URL重复,集成了对Yandex Clean-Param规范的支持。
常见问题解答
它做了什么?
它过滤您的URL列表,以便删除任何重复的页面。
如果我过滤我的URL,我会期待什么?
- 您将不再需要重新加载重复的信息。
- 更高效的网页抓取。
- 服务器负载将降低。
什么是Clean-Param?
它是一个robots.txt指令,用于描述不影响页面内容的动态参数(例如会话标识符、用户、引用者等)。添加后,对被认为是重复的URL数量有显著影响。了解更多。
安装
此库可以通过Composer包进行安装。要通过Composer安装,请将需求添加到您的composer.json
文件中,如下所示
{ "require": { "VIPnytt/CleanParam-URL-Filter": "dev-master" } }
然后使用Composer加载库
<?php require_once('vendor/autoload.php'); $filter = new \VIPnytt\CleanParamFilter($urls);
您可以在以下链接中了解更多关于Composer的信息: https://getcomposer.org.cn/
用法
$filter = new \vipnytt\CleanParamFilter($urlArray); // Optional: Add Clean-Param $filter->addCleanParam($parameter, $path); // List duplicates print_r($filter->listDuplicate()); // List non-duplicates print_r($filter->listApproved());
小贴士:如果您将要过滤成千上万的URL(或者更多),建议将列表拆分为最小。这可以通过按域名(甚至主机)对URL进行分组,然后分别过滤每个组来实现。这是为了性能!
问题解决
致命错误:最大执行时间超出。
原因:您可能正在尝试过滤成千上万的URL。
- 建议将URL列表拆分为最小。这可以通过按域名(甚至主机)分组URL来实现,然后分别过滤每个组。
- 通过使用
set_time_limit(60);
增加PHP的最大执行时间限制。调用时,它将时间限制设置为60秒,并从零重新启动超时计数器。 - 如果您已经正在循环URL组(如建议的那样),请将
set_time_limit(60);
放入循环中,以便每次解析新的一组URL时,超时计数器都会重新启动。
致命错误:允许的内存大小为134217728字节耗尽。
原因:您可能正在尝试过滤成千上万的URL,甚至更多。
- 在这种情况下,您需要将URL列表拆分为最小。这可以通过按域名(甚至更好的,主机)分组URL来实现,然后分别过滤每个组。
- 增加PHP的内存限制。这可以通过设置
ini_set('memory_limit', '256M');
或通过更改php.ini
文件中的memory_limit
变量来实现。