请求HTML Purifier 4.2.0的IRC URI Scheme

时间:2011-02-06 10:24:18

标签: php uri irc htmlpurifier

有人可以帮我建立使用HTML Purifier 4.2.0的IRC URI Scheme吗?我似乎无法弄清楚如何配置或修改哪些文件,以便纯化的html允许irc://链接。

我可以在以下代码块中修改配置吗?

require_once "htmlpurifier-4.2.0/library/HTMLPurifier.standalone.php";
$purifier_config = HTMLPurifier_Config::createDefault();
$purifier_config->set("HTML.Doctype", "XHTML 1.0 Strict");
$purifier = new HTMLPurifier($purifier_config);

更新

我编辑了库/ standalone / HTMLPurifier / ConfigSchema / schema.ser,将“4:nntp”的两个实例更改为“3:irc”,发现错误:

警告:目录htmlpurifier-4.2.0 / library / standalone / HTMLPurifier / DefinitionCache / Serializer / URI不可写,请chmod到777

我相信这有助于在进行此更改后建立对IRC URI Scheme的支持。我稍后会报告。

嗯,在使其可写之后,没有出现错误,但没有结果= \

1 个答案:

答案 0 :(得分:1)

HTML Purifier似乎没有对IRC方案的本机支持。但是:你尝试过这样的事吗?将其放在/library/HTMLPurifier/URIScheme中,或以其他方式确保自动加载找到它:

class HTMLPurifier_URIScheme_irc extends HTMLPurifier_URIScheme {

    public $default_port = 6667;
    public $browsable = false;

    public function validate(&$uri, $config, $context) {
        if (parent::validate($uri, $config, $context) === false) {
            return false;
        }
        if (!is_null($uri->path)) {
            // get channel name
            $uri->path = array_shift(explode('/', $uri->path));
        }
        $uri->userinfo = null;
        $uri->query    = null;
        $uri->fragment = null;
        return true;
    }

}

...并使用...

更改您的配置
$purifier->config->set(
    'URI.AllowedSchemes',
    array('irc' => true, /* ... other schemes here ... */)
);

这可能无法开箱即用,但我认为这应该是正确的方向......