2012-12-21 37 views
12

我有以下代码将字符串呈现为HTML输出。我怎样才能阻止它逃离文本的HTML?手动呈现枝条字符串时禁用HTML转义

$template = '{{ who }} bar'; 
$params = array('who' => "Foo's"); 

$twig = new \Twig_Environment(new \Twig_Loader_String); 
var_dump($twig->render($template, $params)); 

输出:

string(14) "Foo's bar" 

我怎样才能使输出这个呢?

string(14) "Foo's bar" 

我明白,改变'{{ who }} bar''{{ who|raw }} bar'将解决这个问题,但我想在呈现阶段解决这个问题。我不想更改所有的模板。

+0

你要禁用默认全局逃逸或者你希望只渲染具体参数转义? – Gerry

+0

没有公平的改变这个问题。正如Gerry暗示的那样,只需在树枝上全局逃离即可。我假设你根本没有生成html。 – Cerad

+1

@Cerad我没有编辑它,您可以通过修订历史记录来了解它。 – mattalxndr

回答

15

我透过枝杈代码挖,发现这工作得很好:

$twig = new \Twig_Environment(new \Twig_Loader_String, array(
    'autoescape' => false 
)); 
+1

谢谢!不能相信这个解决方案没有更好的文档记录... – Niavlys

+0

值得一提的是,'Twig_Loader_String'现在已被弃用,应该使用'Twig_Loader_Array'来代替。 – Jonathan