如何在树枝模板中显示包含HTML的字符串?


164

如何在树枝模板中显示包含HTML标签的字符串?

我的PHP变量包含以下html和文本:

$word = '<b> a word </b>';

当我在树枝模板中执行此操作时:

{{ word }}

我得到这个:

&lt;b&gt; a word &lt;b&gt;

我想要这个代替:

<b> a word </b>

有可能很容易得到这个吗?


我不会将其添加为答案,但是解决此问题的人们的另一种方法是将值存储在Markdown中,就像StackOverflow一样。然后,您可以创建具有自动转义功能的Twig过滤器,因为您可以相信HTML是安全的。不需要raw,您存储的值是人类可读的!
rybo111

Answers:



77

您还可以使用:

{{ word|striptags('<b>')|raw }}

这样就只<b>允许使用标签。


6
我想说的是,如果您只允许几个标签,则最好使用此版本。
KalenGi 2014年

3
让我不寒而栗的是,我需要把“原始”放到最后—我要放在第一位。
本Y

如何允许多个标签?
Riki137 '16

32
{{ word|striptags('<b>,<a>,<pre>')|raw }}

如果您想允许多个标签


0

如果不需要变量,则可以在
translations / messages.en.yaml中定义文本:
CiteExampleHtmlCode: "<b> my static text </b>"

然后将其与twig:
templates / about / index.html.twig一起使用,
… {{ 'CiteExampleHtmlCode' }}
或者如果您需要像我这样的多语言版本:
… {{ 'CiteExampleHtmlCode' | trans }}

让我们看一下https://symfony.com/doc/current/translation.html,以获取有关翻译使用的更多信息。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.