我在Symfony2中将一个变量传递给我的小枝模板,这个变量可能包含<br /> html标记,我试图创建一个扩展(函数),但是这个变量仍然被转义。
如何输出允许<br />标记的小枝变量?是否有一个简单的解决方案,只允许某些模板中允许标记的白名单?
我搜索过细枝沙箱,但我不确定这是否是我的解决方案。
编辑:--我仍然希望变量被转义,但只允许使用<br />标记。
发布于 2011-11-06 09:21:35
起初,我认为应该可以编写自定义转义器策略,这样您就可以这样做:
{{ var|escape('html-custom') }}不幸的是,事实并非如此。只有html和js是可用的策略。它们是在twig_escape_filter()类文件中定义的Twig_Extension_Core函数中硬编码的。
看来,您唯一的选择是使用新的过滤器来编写自定义扩展:
{{ var|raw|customescape }}下面是一个自定义树枝扩展的示例,以及如何在Symfony中注册它:Symfony2分支扩展
发布于 2012-02-08 14:06:54
实际上,您可以通过以下方法使用本地PHP函数strip_tags:
{{ var|striptags('<br>')|raw }}您可以允许具有以下代码的多个标记:
{{ var|striptags('<br><p>')|raw }}发布于 2012-12-26 04:41:20
你可以这样做:
{{ text | striptags('<p><b><br') | raw }}例如,
<br>逃不掉
<br> and <br />和
<p>逃不掉
<p> and </p>等。
https://stackoverflow.com/questions/8000642
复制相似问题