Smarty解析的转义

    有时,有需要也有必要使Smarty忽略某些它本来会解析的段落。一个经典的例子是模板中嵌入的Javascript或CSS代码。问题在于,这些语言使用{和}字符,而它们本来是Smarty的缺省分隔符

    要彻底避免这些问题的最简单的方法是将你的Javascript和CSS代码放入独立的文件中,然后使用常规的HTML方法存取。

    包含字符串内容可以使用{literal}..{/literal}块。类似于HTML实体用法,你可以用{ldelim}{rdelim}{$smarty.ldelim}来显示当前的分隔符。

    通常,直接修改Smarty的$left_delimiter$right_delimiter会更方便。

例子3-7. 改变分隔符例子

<?php

$smarty
->left_delimiter '<!--{';
$smarty->right_delimiter '}-->';

$smarty->assign('foo''bar');
$smarty->assign('name''Albert');
$smarty->display('example.tpl');

?>

    而模板为:

Welcome <!--{$name}--> to Smarty
<script language="javascript">
  var foo = <!--{$foo}-->;
  function dosomething() {
    alert("foo is " + foo);
  }
  dosomething();
</script>