1

我在将 TinyMCE 实施到 Symfony 项目中时遇到了一个小问题。我让文本编辑器出现并将富文本保存到数据库字段。但是当我在页面上“回显”它时,我会得到所有的 HTML 标签,而不是富文本本身。是否有一种特殊的方式我需要“回显”它以便解析 html?我也希望这样当人们手动输入 html 标签时,它们会显示为常规文本(以避免人们在他们的帖子中添加超链接和其他不需要的东西)。这是显示的内容:

<p>Test</p> <p><strong>Bold Test</strong></p> <p><span style="text-decoration: underline;"><strong>Underline Text</strong></span></p>

而不是这个:

测试

大胆的测试

下划线文本

4

1 回答 1

4

Symfony2 使用输出转义来保证安全。你可以在这里阅读: http: //symfony.com/doc/current/book/templating.html#output-escaping

要回显一个变量而不转义它,您可以这样做:

{{ article.body|raw }}

为了清理和限制可以使用的标签,您需要使用HTMLPurifier,它在此处有一个捆绑包:https ://github.com/Exercise/HTMLPurifierBundle

对于 Symfony 1.4

Symfony 1.4 有类似的输出转义。您可以通过以下方式获取原始数据:

$sf_data->getRaw('varName');

或者如果它是对象上的方法,您可以将ESC_RAW其作为参数添加到方法调用中(警告:symfony 会在这里发挥作用)

$myObject->getMessage(ESC_RAW);

更多关于 1.4 输出在这里转义

于 2012-07-03T03:26:05.120 回答