protonlabs / php-adblock-parser
用于 Adblock Plus 过滤器的 PHP 解析器。是已废弃的 limonte/php-adblock-parser 的分支。
1.1.5
2023-04-03 09:39 UTC
Requires
- php: >=8.1
- ext-ctype: *
- ext-iconv: *
- jeremykendall/php-domain-parser: ^6.2
Requires (Dev)
README
这是 Limonte\AdblockParser 已废弃分支的复刻。
经过编辑以优化性能,具体如下:
- 可以将包含规则的对象保存下来,以避免创建它所需的时间过长。
- 仅运行必要的规则;通用规则和针对 URL 域特定应用的规则。
通过拥有工厂、服务和 DTOs 更好地分离类别的责任。
使用方法
要了解 Adblock Plus 过滤器语法,请查看以下链接
-
获取过滤规则:手动编写、从 EasyList 下载的文件中读取行等。
$adblockEntries = [ "||ads.example.com^", "@@||ads.example.com/notbanner^$~script", ];
-
从规则数组创建 AdblockRules 实例
use Limonte\AdblockParser; $ruleAggregate = (new RuleAggregateFactory(new RuleFactory()))->createFromAdblockEntries($adblockEntries);
-
使用此实例检查 URL 是否应该被阻止
(new RuleApplier())->shouldBlock("http://ads.example.com", $ruleAggregate); // true (new RuleApplier())->shouldBlock("http://non-ads.example.com", $ruleAggregate); // false
相关项目
- Google Safebrowsing PHP 库: limonte/google-safebrowsing
- McAfee SiteAdvisor PHP 库: limonte/mcafee-siteadvisor
- 检查链接是否为 SPAM: limonte/spam-link-analyser
- Python 解析器用于 Adblock Plus 过滤器: scrapinghub/adblockparser
- EasyList 过滤器订阅: easylist/easylist