如何使用HTMLPurifier过滤特定的字体?

时间:2014-06-05 16:35:10

标签: php html fonts wysiwyg htmlpurifier

-

在我当前的项目中,我有一个HTML-WYSIWYG编辑器。用户可以使用不同的Webfonts来设计他们的文本。

我使用的编辑是NiceEdit。它生成如下代码:

        <font face="comic sans ms">Comic Sans</font><br>
        <font face="georgia">Georgia</font><br>
        <font face="helvetica">Helvetica</font><br>

我想过滤字体,只想通过HTMLPurifier来允许特定的字体。

所以我的想法是自定义配置:

$config->set('HTML.DefinitionID', 'enduser-customize.html tutorial');
$config->set('HTML.DefinitionRev', 1);
$config->set('Cache.DefinitionImpl', null); //TODO: remove this later!
$def = $config->getHTMLDefinition(true);
$def = $config->getHTMLDefinition(
$def->addAttribute('font', 'face', 'Text#impact, georgia');

$purifier = new HTMLPurifier($config);

所以在这种情况下我只想允许字体&#34; 影响&#34;和&#34; 格鲁吉亚&#34;。

但它不会以这种方式工作,所有字体仍然会通过并显示。

如果有人可以帮助我,那会很棒!

谢谢! 斯蒂芬

1 个答案:

答案 0 :(得分:1)

您必须覆盖过滤font-family和font的逻辑。我认为在外部进行正确操作会很棘手,因此您可以手动编辑AttrDef/CSS/FontFamily.php以应用限制。