protonlabs/php-adblock-parser

用于 Adblock Plus 过滤器的 PHP 解析器。是已废弃的 limonte/php-adblock-parser 的分支。

1.1.5 2023-04-03 09:39 UTC

This package is auto-updated.

Last update: 2024-09-19 08:44:57 UTC


README

Master Build Status

这是 Limonte\AdblockParser 已废弃分支的复刻。

经过编辑以优化性能,具体如下:

  • 可以将包含规则的对象保存下来,以避免创建它所需的时间过长。
  • 仅运行必要的规则;通用规则和针对 URL 域特定应用的规则。

通过拥有工厂、服务和 DTOs 更好地分离类别的责任。

使用方法

要了解 Adblock Plus 过滤器语法,请查看以下链接

  1. 获取过滤规则:手动编写、从 EasyList 下载的文件中读取行等。

    $adblockEntries = [
        "||ads.example.com^",
        "@@||ads.example.com/notbanner^$~script",
    ];
  2. 从规则数组创建 AdblockRules 实例

    use Limonte\AdblockParser;
    
    $ruleAggregate = (new RuleAggregateFactory(new RuleFactory()))->createFromAdblockEntries($adblockEntries);
  3. 使用此实例检查 URL 是否应该被阻止

    (new RuleApplier())->shouldBlock("http://ads.example.com", $ruleAggregate); // true
    (new RuleApplier())->shouldBlock("http://non-ads.example.com", $ruleAggregate); // false

相关项目