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 }}