1

我有这个属性,它是从 TinyMCE 编辑器保存的 HTML:

<?php echo h($person['Person']['CurriculumVitae']); ?>

如何将其显示在网络上并呈现为 RAW Html 而不是简单的字符串?

4

2 回答 2

2

只是删除 h() 可能会解决您的问题,但它会打开可能的安全漏洞,因为从 TinyMCE 保留 html 的字段现在将成为可能的安全漏洞。

我遇到了完全相同的问题,并通过使用http://htmlpurifier.org/输出 tinymce HTML 来解决它。我还围绕它编写了一个 CakePHP 插件。https://github.com/burzum/HtmlPurifier

HtmlPurifier 将允许您配置一组允许的 Html 元素甚至它的属性。因此,您可以例如指定 href 是允许的,但 class 是不允许的。

您需要为 HtmlPurifier 创建一个配置,该配置将匹配您允许用户使用 TinyMce 执行的任何操作。它将从用户输入的标记中删除所有不允许的标签和属性。

于 2012-10-04T11:26:37.857 回答
2

不要将变量包装在 中h(),它是 的别名htmlspecialchars(),它会转义 HTML 实体:

<?php echo $person['Person']['CurriculumVitae']; ?>
于 2012-10-03T14:15:53.463 回答