16

我使用 Symfony2.1 并拥有默认的 config.yml

文档说

  {# but static strings are never escaped #}
  {{ '<h3>foo</h3>'|trans }}

但是,如果我将它复制并粘贴到我的空模板中(没有任何额外的自动转义或其他),我得到了转义字符串<h3>foo</h3>。我做错了什么?

4

2 回答 2

19

尝试使用twig raw 过滤器

{{ '<h3>foo</h3>' | trans | raw }}

raw但是,如果您正在处理任何用户输入,请不要使用过滤器!据Symfony 的创建者称,它允许跨站点脚本攻击。有关安全但更繁琐的替代方案,请参阅此类似问题

于 2012-11-22T18:45:34.817 回答
2

在翻译中保留 HTML 内容是错误的,因为翻译人员通常会破坏它。但如果你真的需要它:

{% trans %}<h3>foo</h3>{% endtrans %}

https://github.com/symfony/symfony/issues/2713#issuecomment-12510417

于 2016-08-24T08:20:11.823 回答