我有这个属性,它是从 TinyMCE 编辑器保存的 HTML:
<?php echo h($person['Person']['CurriculumVitae']); ?>
如何将其显示在网络上并呈现为 RAW Html 而不是简单的字符串?
只是删除 h() 可能会解决您的问题,但它会打开可能的安全漏洞,因为从 TinyMCE 保留 html 的字段现在将成为可能的安全漏洞。
我遇到了完全相同的问题,并通过使用http://htmlpurifier.org/输出 tinymce HTML 来解决它。我还围绕它编写了一个 CakePHP 插件。https://github.com/burzum/HtmlPurifier
HtmlPurifier 将允许您配置一组允许的 Html 元素甚至它的属性。因此,您可以例如指定 href 是允许的,但 class 是不允许的。
您需要为 HtmlPurifier 创建一个配置,该配置将匹配您允许用户使用 TinyMce 执行的任何操作。它将从用户输入的标记中删除所有不允许的标签和属性。
不要将变量包装在 中h()
,它是 的别名htmlspecialchars()
,它会转义 HTML 实体:
<?php echo $person['Person']['CurriculumVitae']; ?>