Smarty 定界符 花括號 大括號 函數定義 轉義

使用 Smarty 模板的時候,通常都是用 ‘{’ 和 ‘}’ 作爲定界符(delimiter)。

有時,我們需要在 html 代碼裏輸出大括號,如果在模板裏直接寫出來,會被 Smarty 的解析器認爲是定界符,然後會報錯:

Smarty error : syntax error: unrecognized tag

無法識別的標籤!

如何解決呢?有 2 種辦法:

1:內置變量

ldelim, rdelim 
ldelim and rdelim are used for displaying the literal delimiter, in our case “{” or “}”. The template engine always tries to interpret delimiters, so this is the way around that.

{ldelim} 和 {rdelim} 用於輸出分隔符,也就是大括號 ‘{’ 和 ‘}’。如果只是輸出很少的幾個大括號,請使用此方法。

2: 文本轉義

我們經常會在 html 裏寫 javascript 函數,就不可避免地寫大量的大括號,這個時候上面的解決方法就不適用了,Smarty 提供了一個轉義一段代碼的標籤:{literal}…{/literal}

{literal} 
<script type="text/javascript"> 
function sayHello() {alert('Hello World!')} 
</script> 
{/literal}

這樣,就可以在裏面隨意寫各種符號,不必擔心 Smarty 引擎會錯誤解析了!

發佈了348 篇原創文章 · 獲贊 111 · 訪問量 126萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章