Smarty 不解析标签
在 Smarty 中如果希望某些代码不被Smarty解析,可以使用 {literal}
标签。{literal} 标签用于告诉 Smarty 不要解析标签和变量,而是将其内容直接输出到最终的模板中,保持其原始状态。
使用示例:
{literal} <script> function sayHello(){ console.log("hello, {$name}!"); } </script> {/literal}
在上面的例子中,{literal} 标签告诉 Smarty 不要解析其中的内容,因此 {$name} 不会被视为 Smarty 变量,而是作为普通文本输出,因此上面示例最终的输出为:
<script> function sayHello(){ console.log("hello, {$name}!"); } </script>
输出中 $name 之所有没有被替换,是因为加了 {literal} 标签。
注意事项
内容包含变量时:如果在 {literal} 标签内部有包含 Smarty 变量的内容,Smarty会将这些变量视为普通文本而不会解析它们。
多行内容:{literal} 标签可以跨多行使用,直到遇到 {/literal} 结束标签为止。
避免误用:避免过度使用 {literal},因为它会禁用Smarty的所有解析功能,包括其他标签和变量。