代码之家  ›  专栏  ›  技术社区  ›  Dirk J. Faber

Twig truncate()和slice()返回带有html实体名称的字符串

  •  0
  • Dirk J. Faber  · 技术社区  · 6 年前

    我有一个69个字符的字符串:

    This is a test with characters like € or "like this". How 'bout that?
    

    <p>This is a <strong>test </strong>with characters like &euro; or &quot;like this&quot;. How &#39;bout that?</p>
    

    如果我想显示不带任何标记的字符串,我使用细枝过滤器 striptags raw

    这是一个使用类似或“像这样”的字符的测试。怎么样?
    

    现在,对于原始字符串,我想显示前65个字符,而不使用任何样式。我用细枝过滤器 truncate (65) . 这是我在Twig中的代码:

    {{ string | striptags | raw | truncate (65) }}
    

    This is a test with characters like &euro; or &quot;like this&quo...
    

    如您所见,特殊字符显示为它们的HTML实体名,尽管我只添加了 truncate 过滤器。这是一个bug还是应该预料到?当我使用 slice

    我的结果应该是:

    This is a test with characters like € or "like this". How 'bout 
    

    我知道现在的问题是什么。当使用 对字符串进行筛选这并不意味着在使用时将不计算该字符串中的任何原始字符(即HTML实体名称) 截断

    0 回复  |  直到 6 年前