有没有办法让 Twig 停止清理 HTML URL 链接?

Is there some way to make Twig stop sanitizing HTML URL links?

Twig 在清理危险的用户输入方面做得很好。但是,我正在构建一个特定的网络应用程序,我希望允许用户在 public 评论中 post 可点击 URL 链接。有什么方法可以让 Twig 清理 URL 链接,但仍然清理其他所有内容?

您可以使用 raw filter 来防止 HTML 被转义:

{{ some_html|raw }}

或者更好的选择是将它与 striptags filter 和白名单 <a> 标签一起使用:

{{ some_html|striptags('<a>')|raw }}

在内部,Twig 使用 PHP strip_tags function。请注意,其文档有此警告:

Warning

This function does not modify any attributes on the tags that you allow using allowable_tags, including the style and onmouseover attributes that a mischievous user may abuse when posting text that will be shown to other users.

See TwigFiddle.