2011-02-06 45 views
2

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

是否有可能我可以简单地修改下面的代码块中的配置?

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); 

更新:

我编辑库/独立/ HTMLPurifier/ConfigSchema/schema.ser改变的两个实例 “4:NNTP” 到 “3:IRC” 和发现错误:

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

我相信这将有助于在做出此更改后建立对IRC URI方案的支持。我会稍微报告一下。

嗯,使得它可写后,没有错误出现,但没有结果似乎= \

回答

1

HTML净化器并不具备的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 ... */) 
); 

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

+1

如果你再次浏览一遍,你可以[检查我的编辑](http://stackoverflow.com/revisions/5078411/2)? – 2012-05-15 17:35:53