可以通过
print_r($GLOBALS)
或var_dump($GLOBALS)
,打印全部变量。
变量输出
输出一个变量的值
- 模板中调用方式:
{$my_var}
、$my_var
在模板中花括号可以省略但不建议去掉。
- php文件调用方式:
$my_var
条件判断
通过if判断流程分支
- 模板中调用方式:
<!--{if $my_var}--> 任意html语句 <!--{/if}-->
带有多条件的if写法,可使用PHP常规判断中的各种运算符
<!--{if $my_var && ($my_var2 & 1 || $my_var3 == 3)}--> 任意html语句 <!--{/if}-->
带有分支条件的if写法
<!--{if $my_var == 1}--> 变量为1 <!--{elseif $my_var == 2}--> 变量为2 <!--{else}--> 其他情况 <!--{/if}-->
- php文件调用方式:
if ($my_var) {
}
带有多条件的if写法,可使用PHP常规判断中的各种运算符
if ($my_var && ($my_var2 & 1 || $my_var3 == 3)) {
}
带有分支条件的if写法
if ($my_var == 1) {
}elseif ($my_var == 2){
}else{
}
循环输出
带有数组键的循环写法
- 模板中调用方式:
<!--{loop $my_arr $key $val}--> 循环输出的HTML语句 <!--{/loop}-->
没有数组键的循环写法
<!--{loop $my_arr $val}-->
- php文件调用方式:
foreach($my_arr as $val){
}
模板嵌套
网站显示控制(网站多样化风格输出)处理原理:系统使用class_template.php中的parse_template()函数,通过PHP正则运算将htm模文件中的模板标签转换为PHP代码,并将其保存到\data\template目录下。此过程类似于Smarty中的模板处理,尽管具体算法与过程有所不同,但Smarty仍是一种重型模板引擎方案。其原理都是把模板中的变量转换成相应的PHP代码,这个过程实际是模访JAVA中的一次编译,多处运行。
例如dir/main 对应某个模块中template目录中的dir目录的main.htm模板文件
- 模板中调用方式:
<!--{template dir/main}-->
- php文件调用方式:
include template('dir/main');
例如main 对应某个模块中template目录的main.htm模板文件
- 模板中调用方式:
<!--{template main}-->
- php文件调用方式:
include template('main');
程序调用模板时,将优先寻找当前层,如应用dzz/test,将查找test对应目录下的template下的模板文件,若未找到,则向上查找dzz下的模板目录。若依然未找到,则调用\core\template\default\common\下的模板文件。在找到任意一层后,将不再向上查找。
变量数组可以嵌套使用
- 模板中调用方式:
<!--{if $my_arr[$my_var]}-->
<!--{if $my_arr[0]}-->
<!--{if $my_arr[$my_arr2[$my_var]]}-->
- php文件调用方式:
if ($my_arr[$my_var]) {
}
if ($my_arr[0]) {
}
if ($my_arr[$my_arr2[$my_var]]) {
}
PHP语句解析
在模板中使用PHP语句可以通过{eval }进行
- 模板中调用方式:
<!--{eval $my_var = 1;}-->
<!--{eval echo $my_var;}-->
<!--{eval $my_arr = array(1, 2, 3);}-->
<!--{eval print_r($my_arr);}-->
<!--{eval output();}-->
<!--{eval exit();}-->
- php文件调用方式:
$$my_var = 1;
echo $$my_var;
$$my_arr = array(1, 2, 3);
print_r($$my_arr);
output();
exit();
路由语句使用
以下说明以当前页面URL为http://127.0.0.1/admin.php?mod=systemlog&op=admin为例
- 模板中调用方式:
{MOD_PATH}
- php文件调用方式:
MOD_PATH
结果为:admin/systemlog
- 模板中调用方式:
{MOD_NAME}
- php文件调用方式:
MOD_NAME
结果为:systemlog
- 模板中调用方式:
{MOD_DIR}
- php文件调用方式:
MOD_DIR
结果为:./admin/systemlog
- 模板中调用方式:
{MOD_URL}
- php文件调用方式:
MOD_URL
结果为:admin.php?mod=systemlog
- 模板中调用方式:
{OP_NAME}
- php文件调用方式:
OP_NAME
结果为:admin
- dzzoffice小胡版模板中调用方式:
{OP_NAME}
- dzzoffice小胡版php文件调用方式:
OP_NAME
结果为:admin.php?mod=systemlog&op=admin
获取当前域名
以http://127.0.0.1域名为例,结果为http://127.0.0.1/
- 模板中调用方式:
{$_G['siteurl']}
、$_G[siteurl]
、{$_G[siteurl]}
- php文件调用方式:
$_G['siteurl']
、$_G[siteurl]
获取当前用户UID
以当前用户UID是1为例,结果为1
- 模板中调用方式:
{$_G['uid']}
、$_G[uid]
、{$_G[uid]}
- php文件调用方式:
$_G['uid']
、$_G[uid]
获取当前用户名
以当前用户名是小胡为例,结果为小胡
- 模板中调用方式:
{$_G['username']}
、$_G[username]
、{$_G[username]}
- php文件调用方式:
$_G['username']
、$_G[username]
获取当前用户的ip地址
- 模板中调用方式:
{$_G['clientip']}
、$_G[clientip]
、{$_G[clientip]}
- php文件调用方式:
$_G['clientip']
、$_G[clientip]
获取当前时间
- 模板中调用方式:
{$_G['timestamp']}
、$_G[timestamp]
、{$_G[timestamp]}
- php文件调用方式:
$_G['timestamp']
、$_G[timestamp]
、TIMESTAMP
如果要显示成个性化时间就需要配合
dgmdate
函数,例如dgmdate(TIMESTAMP);
,如果要自定义显示格式,示例代码dgmdate(TIMESTAMP, 'Y-m-d H:i');