Smarty 定界符
Smarty 选择语句 

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