Symfony 如何避免替换文本?

Symfony 如何避免替换文本?,symfony,twig,Symfony,Twig,我有一个包含以下内容的模板: <blockquote> <p>{{ message|replace({"\r\n\r\n":'</p><p>', "\r\r":'</p><p>', "\n\n":'</p><p>'}) }}</p> </blockquote> 除此之外,它还从输入文本运行(潜在危险)脚本,这显然是我不希望发生的 如何让Twig按字面意思使用替换文本,

我有一个包含以下内容的模板:

<blockquote>
    <p>{{ message|replace({"\r\n\r\n":'</p><p>', "\r\r":'</p><p>', "\n\n":'</p><p>'}) }}</p>
</blockquote>
除此之外,它还从输入文本运行(潜在危险)脚本,这显然是我不希望发生的


如何让Twig按字面意思使用替换文本,但仍保留转义的输入文本?

您尝试过使用php方法nl2br吗

您可以将其用作细枝过滤器

如果您特别希望进行所描述的转换,并且希望它进行预转义,然后以html呈现,那么您必须编写自己的过滤器

为此,让我们看看如何实现nl2br

现在,为了编写自己的扩展,您可以按照本教程进行操作

然后注册它(如上面链接中所述),以便您可以使用它

 {{ "your text" | doubleline2paragraph }} 

它做不到我想要的。我想要双换行符来关闭和打开新段落,
,正如我的代码所示。谢谢。我希望避免写我自己的,但除非有人来证明你错了,我会接受这个答案。
Woop-de-doo La-dee-da

Foo van der Bar

Mojo
{{ "I like Twig.\nYou will like it too."|nl2br }}
 new Twig_SimpleFilter(
   'nl2br',
   'nl2br',
   array('pre_escape' => 'html', 'is_safe' => array('html'))
 )
class AppExtension extends \Twig_Extension
{
    public function getFilters()
    {
        return array(
            new \Twig_SimpleFilter(
                'doubleline2paragraph',
                array($this, 'doubleLine2Paragraph'),
                array('pre_escape' => 'html', 'is_safe' => array('html'))
            ),
        );
    }

    public function doubleLine2Paragraph($text)
    {
        // your transformation

        return $text;
    }

    public function getName()
    {
        return 'app_extension';
    }
}
 {{ "your text" | doubleline2paragraph }}