2012-12-21 21 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|raw }} bar' को '{{ who }} bar' बदलते समस्या ठीक हो जाएगी, लेकिन मैं प्रतिपादन स्तर पर इस का समाधान करना चाहते हैं। मैं सभी टेम्पलेट्स को बदलना नहीं चाहता हूं।

+0

आप विश्व स्तर पर डिफ़ॉल्ट रूप से बचने को निष्क्रिय करना चाहते हैं या आप केवल विशिष्ट मानदंडों नहीं छोड़ा जाएगा रेंडर करने के लिए देख रहे हैं? – Gerry

+0

कोई उचित सवाल नहीं बदल रहा है। जैसा कि गेरी ने निहित किया, बस टहलने में विश्व स्तर पर भागने से बचें। मुझे लगता है कि आप एचटीएमएल उत्पन्न नहीं कर रहे हैं। – 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

संबंधित मुद्दे