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