2

有人可以帮助我为 HTML Purifier 4.2.0 建立使用 IRC URI 方案吗?我似乎无法弄清楚如何配置或修改哪些文件,以便纯化的 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);

更新:

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

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

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

嗯,改成可写后,没有出现错误,但是没有结果=\

4

1 回答 1

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 ... */)
);

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

于 2011-02-22T12:58:53.307 回答