如何在CakePHP 2.2中输出原始HTML?

时间:2012-10-03 14:07:14

标签: html cakephp

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

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

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

2 个答案:

答案 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的任何内容相匹配。它将从用户输入的标记中删除所有不允许的标记和属性。