今天我安装了Composer并安装了HTMLPurifier,它取代了我的旧压缩下载。这使我的版本从 4.2 移动到 4.4
此代码现在不再有效:
$config = HTMLPurifier_Config::createDefault();
$config->set('HTML.Allowed', 'a[href|title],em,strong,b,i,s,p');
$config->set('AutoFormat.Linkify', true);
$purifier = new HTMLPurifier($config);
$do = is_null($comment) ? $this->comment : $comment;
$clean = $purifier->purify($do);
debug($clean);
如果我删除作曲家自动加载,并引用回旧库,它可以工作。这是在包含http://www.google.com
的字符串上。但$clean
与$do
相同
编辑显然,通过作曲家下载时,没有创建HTMLPURIFIER_PREFIX
常量,也没有加载 *.ser 文件(即使它存在。这是在 library/HTMLPurifier/Bootstrap.php
中定义的,但该文件不包含在任何地方(因此未定义,因此不起作用)。
edit2 看起来就我而言,它与作曲家配合不好。它根本不包括Bootstrap.php
文件。不得不从我的应用程序手动调用HTMLPurifier_Bootstrap::registerAutoload();
,而且效果更好。干得好我。更多信息在这里
事实证明,正如我上面所说,问题与作曲家<-> HTMLPurifier交互有关,并且没有正确加载Bootstrap.php
文件。手动调用HTMLPurifier_Bootstrap::registerAutoload();
似乎现在已经解决了它。