有三种方法可以避免冲突的发生。
第一种:重新定义smarty的定界符并且允许两边出现空格。
在smarty的类中提供了三个公有属性:
$left_delimiter —— 用来定义左定界符;
$right_delimiter —— 用来定义右定界符;
$auto_literal —— 用来定义是否允许出现空格,这个值默认为true,即:不允许出现空格;
我们可以通过设置这三个属性来重新定义smarty的定界符并且允许两边出现空格。
如:(我们将定界符定义成<{$val}>这种形式)
$smarty = new Smarty();
$smarty->left_delimiter = ‘<{’;
$smarty->right_delimiter = ‘}>’;
$smarty->auto_literal = false;
这样就可以使用<{$val}>或<{ $val }>这两种形式都不会出现错误;
第二种:把javascript代码或css代码写到一个js文件或css文件中,在模板页中引用即可。
第三种:
使用smarty内置的literal标签,此标签内的数据将会被当做文本处理。如:
{literal}
<script language=javascript>
........
</script>
{/literal}
可以根据个人的使用习惯以及爱好来选择一种方式。