Jak wyświetlić ciąg zawierający kod HTML w szablonie twig?


164

Jak mogę wyświetlić ciąg zawierający tagi HTML w szablonie twig?

Moja zmienna PHP zawiera ten kod HTML i tekst:

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

Kiedy robię to w moim szablonie gałązki:

{{ word }}

Rozumiem:

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

Zamiast tego chcę:

<b> a word </b>

Czy można to łatwo uzyskać?


Nie dodam tego jako odpowiedzi, ale alternatywnym podejściem dla osób, które sięgają po to pytanie, jest przechowywanie wartości w Markdown , tak jak robi to StackOverflow . Następnie możesz utworzyć filtr Twig z automatyczną ucieczką , ponieważ możesz ufać, że HTML jest bezpieczny. Nie rawpotrzeba, a zapisane wartości są czytelne dla człowieka!
rybo111

Odpowiedzi:



77

Możesz także użyć:

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

tak, że tylko <b>tag będzie dozwolony.


6
Powiedziałbym, że ta wersja jest lepsza, jeśli chcesz zezwolić tylko na kilka tagów.
KalenGi

3
To, co mnie zaskoczyło, to konieczność umieszczenia „surowego” na końcu - postawiłem to na pierwszym miejscu.
Ben Y,

Jak zezwolić na wiele tagów?
Riki137

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

jeśli chcesz zezwolić na wiele tagów


0

jeśli nie potrzebujesz zmiennej, możesz zdefiniować tekst w
tłumaczenia / wiadomości.pl.yaml :
CiteExampleHtmlCode: "<b> my static text </b>"

następnie użyj go z twig:
templates / about / index.html.twig
… {{ 'CiteExampleHtmlCode' }}
lub jeśli potrzebujesz multilangages, takich jak ja:
… {{ 'CiteExampleHtmlCode' | trans }}

Rzućmy okiem na https://symfony.com/doc/current/translation.html, aby uzyskać więcej informacji o używaniu tłumaczeń.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.