Como exibir a string que contém HTML no modelo de galho?


164

Como posso exibir uma string que contém tags HTML no modelo de galho?

Minha variável PHP contém este html e texto:

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

Quando faço isso no meu modelo de galho:

{{ word }}

Eu entendi isso:

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

Eu quero isso:

<b> a word </b>

É possível obter isso facilmente?


Não adicionarei isso como resposta, mas uma abordagem alternativa para as pessoas que chegam a essa pergunta é armazenar valores no Markdown , como o StackOverflow . Em seguida, você pode criar um filtro Twig com escape automático , pois você pode confiar no HTML como seguro. Não é rawnecessário, e seus valores armazenados são legíveis por humanos!
rybo111

Respostas:



77

Você também pode usar:

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

para que apenas a <b>tag seja permitida.


6
Eu diria que esta versão é preferível se você deseja permitir apenas algumas tags.
KalenGi

3
O que me fez tropeçar foi precisar colocar "cru" por último - eu o colocaria primeiro.
Ben Y

Como você permite várias tags?
Riki137 27/05

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

se você deseja permitir várias tags


0

se você não precisa de variável, pode definir o texto em
traduções / messages.en.yaml :
CiteExampleHtmlCode: "<b> my static text </b>"

use-o com twig:
templates / about / index.html.twig
… {{ 'CiteExampleHtmlCode' }}
ou se você precisar de vários idiomas como eu:
… {{ 'CiteExampleHtmlCode' | trans }}

Vamos dar uma olhada em https://symfony.com/doc/current/translation.html para obter mais informações sobre o uso de traduções.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.