Smarty 模板定界符的另一种用法
来源:互联网 发布:绝地求生老是网络延迟 编辑:程序博客网 时间:2024/06/06 01:23
Smarty 模板定界符默认是{...}。但在模板内包含 Javascript 脚本,并且用到了必须用{}包裹是js语句块的情况下,Smarty 模板默认的定界符就与 js 脚本的 {} 冲突了。一般的解决办法是两种。
第一,用 Smarty 的 {literal}{/literal}标签包含 js 脚本,例如:
{literal}
<script>
function func()
{
......
}
</script>
{/literal}
第二,修改 Smarty 默认的定界符,例如以下语句修改默认的定界符为 {* ... *}
$smarty->left_delimiter = '{*';
$smarty->right_delimiter = '*}';
但是有一种情况,就不能通过加{literal}{/literal}标签来解决,例如以下js代码:
{literal}
<script>
function func()
{
if (null=={$data})
}
</script>
{/literal}
其中 {$data} 是一个 Smarty 变量,如果用{literal}{/literal}标签包裹,就把里面的 Smarty 变量 {$data}也屏蔽掉了。这个时候可以通过修改 Smarty 默认的定界符来解决,但是如果已经有大量的模板文件,再重新指定新的定界符工作量就太大了。这个时候,可以把 js 脚本里的“{”和“}”分别用 Smarty 的 {ldelim}和{rdelim}标签代替就可以了(切记不能同时还用literal了)。示例:
<script>
function func()
{ldelim}
if (null=={$data})
{rdelim}
</script>
其实也有缺点,如果 js 脚本行数很多,有很多的“{...}”花括弧对,变通后的 js 脚本可读性就差了。
作者:张庆(网眼)
更多文章:http://blog.why100000.com
2008-10-20
- Smarty 模板定界符的另一种用法
- smarty的定界符
- 模板函数的另一种用法
- smarty定界符与js冲突的问题
- smarty 定界符与js冲突的问题
- Smarty运用,赋值数组,定界符冲突
- 如何解决css和js的{}与smarty定界符冲突的问题
- 解决smarty标签的定界符{}与css的{}冲突问题
- PHP 定界符EOT用法
- PHP中单引号,双引号,反引号,定界符的用法
- php的<<<(定界符)
- Smarty 定界符 花括号 大括号 函数定义 转义
- smarty与js、css定界符冲突解决方法
- C++操作符operator的另一种用法
- ||、&&、和?:运算符的另一种用法
- 人民币的另一种用法
- using的另一种用法
- using的另一种用法
- ORACLE中一个SQL语句实现横向汇总和纵向汇总(求每个学生的总成绩,每学科总成绩和全班总成绩)
- C#设计模式(15)-Facade Pattern
- mouse_event 鼠标模拟(转集)
- 新手需要帮助
- 博客中国为什么会面临倒闭?
- Smarty 模板定界符的另一种用法
- C#设计模式(16)-Bridge Pattern
- C++太难用
- 很久以前。。。。
- key_event 键盘模拟(转集)
- C#设计模式(17)-Chain of Responsibility
- 开心的一天!
- 公交车上两个初中女生的对白
- 网际校验和算法(Internet CheckSum)