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的所有解析功能,包括其他标签和变量。