首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Twig中取消转义或html解码(PHP模板)

在Twig中取消转义或html解码(PHP模板)
EN

Stack Overflow用户
提问于 2013-03-17 03:17:24
回答 4查看 71.4K关注 0票数 30

我使用的是twig 1.12.2。我的代码从代码隐藏中生成一些元素,当使用最新版本的twig呈现这些元素时,它们会得到html编码。

代码语言:javascript
复制
{% for item in files_folders %}
<tr class="{{ cycle(['tr_odd', 'tr_even'], loop.index) }}">
    <td><img src="../templates/images/sharepoint/{{ item.ContentType }}.gif" border="0" alt=""/></td>
    <td>{{ item.Link }}</td>
    <td>{{ item.Modified }}</td>
    <td>{{ item.FileSize }}</td>
    <td>{{ item.FileType }}</td>
</tr>
{% endfor %}

这将输出以下内容

代码语言:javascript
复制
<tr class="tr_even">
    <td><img src="../templates/images/sharepoint/Document.gif" border="0" alt=""/></td>
    <td>&lt;a href=&#039;?download=/ddd.png&#039;&gt;ddd.png&lt;/a&gt;</td>
    <td>2013-03-04 17:47:38</td>
    <td>64.8 KB</td>
    <td>png</td>
</tr>
<tr class="tr_odd">
    <td><img src="../templates/images/sharepoint/Document.gif" border="0" alt=""/></td>
    <td>&lt;a href=&#039;?download=/asdasd.png&#039;&gt;asdasd.png&lt;/a&gt;</td>
    <td>2013-03-03 20:01:52</td>
    <td>66.04 KB</td>
    <td>png</td>
</tr>

当我调试并在将数据发送到twig之前查看数据时,它不会转义。我还没有找到任何替代{{ item.Link }}来按原样呈现数据的方法。

谢谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-03-17 03:22:48

您可以使用raw过滤器来使twig呈现原始的html

http://twig.sensiolabs.org/doc/filters/raw.html

代码语言:javascript
复制
{% autoescape %}
    {{ var|raw }} {# var won't be escaped #}
{% endautoescape %}
票数 57
EN

Stack Overflow用户

发布于 2014-07-22 23:16:03

您应该小心使用|raw。说数据是安全的,意味着你是百分之百信任它。

就我个人而言,我建议使用自定义细枝过滤器:

代码语言:javascript
复制
class CustomExtension extends \Twig_Extension 
{
    public function getFilters()
    {
        return array(
            new \Twig_SimpleFilter('unescape', array($this, 'unescape')),
        );
    }

    public function unescape($value)
    {
        return html_entity_decode($value);
    }
}

将以下代码添加到您的services.yml中(或者将其转换为xml)。

代码语言:javascript
复制
 services:
     ha.twig.custom_extension:
     class: HA\SiteBundle\Twig\CustomExtension
     tags:
         - { name: twig.extension }
票数 18
EN

Stack Overflow用户

发布于 2016-10-12 07:58:13

http://twig.sensiolabs.org/doc/filters/raw.html

代码语言:javascript
复制
{% autoescape false %}
   {{ your_item }}{# your_item won't be escaped #}
{% endautoescape %}
票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15453579

复制
相关文章

相似问题

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