2012-12-21 36 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