首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >symfony2小枝白名单html标签

问symfony2小枝白名单html标签
EN

Stack Overflow用户
提问于 2011-11-03 19:22:12
回答 5查看 11.6K关注 0票数 11

我在Symfony2中将一个变量传递给我的小枝模板,这个变量可能包含<br /> html标记,我试图创建一个扩展(函数),但是这个变量仍然被转义。

如何输出允许<br />标记的小枝变量?是否有一个简单的解决方案,只允许某些模板中允许标记的白名单?

我搜索过细枝沙箱,但我不确定这是否是我的解决方案。

编辑:--我仍然希望变量被转义,但只允许使用<br />标记。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-11-06 09:21:35

起初,我认为应该可以编写自定义转义器策略,这样您就可以这样做:

代码语言:javascript
复制
{{ var|escape('html-custom') }}

不幸的是,事实并非如此。只有html和js是可用的策略。它们是在twig_escape_filter()类文件中定义的Twig_Extension_Core函数中硬编码的。

看来,您唯一的选择是使用新的过滤器来编写自定义扩展:

代码语言:javascript
复制
{{ var|raw|customescape }}

下面是一个自定义树枝扩展的示例,以及如何在Symfony中注册它:Symfony2分支扩展

票数 1
EN

Stack Overflow用户

发布于 2012-02-08 14:06:54

实际上,您可以通过以下方法使用本地PHP函数strip_tags:

代码语言:javascript
复制
{{ var|striptags('<br>')|raw }}

您可以允许具有以下代码的多个标记:

代码语言:javascript
复制
{{ var|striptags('<br><p>')|raw }}
票数 42
EN

Stack Overflow用户

发布于 2012-12-26 04:41:20

你可以这样做:

代码语言:javascript
复制
{{ text | striptags('<p><b><br') | raw }}

例如,

代码语言:javascript
复制
<br>

逃不掉

代码语言:javascript
复制
<br> and <br />

和

代码语言:javascript
复制
<p>

逃不掉

代码语言:javascript
复制
<p> and </p>

等。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8000642

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档