日期:2014-05-17  浏览次数:20467 次

ThinkPHP模板运用指南

使用例子:

{$webTitle|md5|strtoupper|substr=0,3}

编译后的PHP代码就是:

<?php echo (substr(strtoupper(md5($webTitle)),0,3)); ?>

注意函数的定义和使用顺序的对应关系,通常来说函数的第一个参数就是前面的变量或者前一个函数使用的结果,如果你的变量并不是函数的第一个参数,需要使用定位符号,例如:

{$create_time|date="y-m-d",###}

编译后的PHP是:

<?php echo (date("y-m-d",$create_time)); ?>

函数的使用没有个数限制,但是可以允许配置TMPL_DENY_FUNC_LIST定义禁用函数列表,系统默认禁用了exit和echo函数,以防止破坏模板输出,我们也可以增加额外的定义,例如:

TMPL_DENY_FUNC_LIST=>"echo,exit,halt"

多个函数之间使用半角逗号分隔即可。

?

并且还提供了在模板文件中直接调用函数的快捷方法,无需通过模板变量,包括两种方式:

1、执行方法并输出返回值:

格式:{:function(…)}

例如,输出U方法的返回值:

{:U('User/insert')}

编译后的PHP代码是

<?php echo U('User/insert');?>

?

2、执行方法但不输出:

格式:{~function(…)}

例如,调用say_hello函数:

{~say_hello('ThinkPHP')}

编译后的PHP代码是:

<?php say_hello('ThinkPHP');?>
系统变量
除了常规变量的输出外,模板引擎还支持系统变量和系统常量、以及系统特殊变量的输出。它们的输出不需要事先赋值给某个模板变量。系统变量的输出必须以$Think. 打头,并且仍然可以支持使用函数。

1、系统变量:包括server、session、post、get、request、cookie

{$Think.server.script_name } // 输出$_SERVER变量

{$Think.session.session_id|md5 } // 输出$_SESSION变量

{$Think.get.pageNumber } // 输出$_GET变量

{$Think.cookie.name } // 输出$_COOKIE变量

支持输出$_SERVER、$_ENV、 $_POST、 $_GET、 $_REQUEST、$_SESSION和 $_COOKIE变量。后面的server、cookie、config不区分大小写,但是变量区分大小写。例如:

{$Think.server.script_name }和{$Think.SERVER.script_name }等效