使用HTMLpurifier过滤img标签的URL

问题描述 投票:0回答:1

我正在使用htmlPurifier过滤用户生成的html。我想使用特定规则集过滤所有图像URL,同时允许使用更多常规超链接。

如何设置仅适用于img.src属性而不适用于a.href属性的URL过滤器?

我想,我需要按照http://htmlpurifier.org/docs/enduser-uri-filter.html中的描述设置URI过滤器。但是我需要以某种方式将其限制为img.src属性。

如果我编写这样的过滤器,是否有办法确定我当前是否正在使用img.src属性?

class HTMLPurifier_URIFilter_NameOfFilter extends HTMLPurifier_URIFilter
{
    public $name = 'NameOfFilter';
    public function prepare($config) {}
    public function filter(&$uri, $config, $context) {}
}
php htmlpurifier
1个回答
0
投票

我刚刚找到了解决方案:$ context对象包含有关当前正在处理的标签的信息。因此,可以使用:

class HTMLPurifier_URIFilter_MyImages extends HTMLPurifier_URIFilter {
    public $name = 'MyImages';
    public $post = true;
    public function prepare($config) {}
    public function filter(&$uri, $config, $context) {
        if ($context->get('CurrentToken')->name == 'img') {
            // do something with the image url here
        }
        return true;
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.