【问题标题】:Request for IRC URI Scheme for HTML Purifier 4.2.0请求 HTML Purifier 4.2.0 的 IRC URI 方案
【发布时间】:2011-02-06 10:24:18
【问题描述】:

有人可以帮助我为 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 方案的支持。一会我会回来汇报的。

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

【问题讨论】:

    标签: php uri irc htmlpurifier


    【解决方案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 ... */)
    );
    

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

    【讨论】:

    • 如果你再看一遍,你能check my edit吗?
    • @Frank Farmer:...哦,快!谢谢你抓住那个。你是对的,当然。非常感谢!
    猜你喜欢
    • 2013-07-15
    • 1970-01-01
    • 2021-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-24
    • 1970-01-01
    相关资源
    最近更新 更多