码迷,mamicode.com
首页 > 其他好文 > 详细

Smarty模板技术/引擎——变量操作(2)

时间:2015-11-16 17:11:40      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:

1, 变量的分类

① 从PHP中分配的变量,比如a.php跳转到b.php时候,可以在a.php中分配变量,b.tpl中直接调用。a.php中代码,$smarty->assign(‘str’,’hello world’);在b.tpl中代码,{$str}直接打印出hello world。

index.php

<?php
require_once "./libs/Smarty.class.php";
$smarty = new Smarty();
$smarty->assign(‘str‘,‘hello world‘);
$smarty->display(‘index.tpl‘);

index.tpl

html>
<body>
<h1>显示记录</h1>
{$str}
<br/>
</body>
</html>

② 从配置文件中读取变量

在项目下新建config目录,config目录下面新建配置文件my.ini。

my.ini

title = ‘smarty显示记录‘
bgcolor = ‘pink‘

  

index.php

<?php
require_once "./libs/Smarty.class.php";
$smarty = new Smarty();

$smarty->assign(‘str‘,‘hello world‘);
$smarty->display(‘index.tpl‘);
?>

index.tpl

{config_load file="./config/my.ini"}
<html>
<body bgcolor="{#bgcolor#}">
<h1>显示记录</h1>
{#title#}
<br/>
</body>
</html>

  页面打印结果

技术分享

在建立smarty对象后,可以指定配置文件路径,tpl中直接引用即可。

index.php修改为如下样式:

<?php
require_once "./libs/Smarty.class.php";
$smarty = new Smarty();
$smarty->config_dir = ‘./config‘;
$smarty->assign(‘str‘,‘hello world‘);
$smarty->display(‘index.tpl‘);
?>

index.tpl样式如下:

{config_load file="my.ini"}
<html>
<body bgcolor="{#bgcolor#}">
<h1>显示记录</h1>
{#title#}
<br/>
</body>
</html>

③ Smarty保留变量,在tpl中直接获取get、post、server、session变量。我们通常是在php中获取这些变量,再通过smarty的assign属性发送给tpl。现在通过smarty的保留变量可以直接tpl中获取这些变量,当然我们不提倡这么做。

login.php跳转到index.php,index.php通过smarty模板显示。

login.php

<a href="index.php?name=hello world& age=20">新页面</a>

a)  旧方式

index.php

<?php
require_once "./libs/Smarty.class.php";
$smarty = new Smarty();

$smarty->assign(‘name‘,$_GET[‘name‘]);
$smarty->assign(‘age‘,$_GET[‘age‘]);
$smarty->display(‘index.tpl‘);

index.tpl

<html>
<body bgcolor="pink">
<h1>显示记录</h1>
{$name}<br/>
{$age}
<br/>
</body>
</html>

b  新方式

index.php

<?php
require_once "./libs/Smarty.class.php";
$smarty = new Smarty();
$smarty->display(‘index.tpl‘);
?>

index.tpl

<html>
<body bgcolor="pink">
<h1>显示记录</h1>
{$smarty.get.name}<br/>
{$smarty.get.age}<br/>

</body>
</html>

  两者输出结果一样,建议使用旧的方式。

2,在模板文件中对引用的变量可以进行数学运算,但不能使用()改变运算的次序。

Smarty的变量调节器,就是操作变量的函数,在tpl中引用的方式{变量调节器|字符串},比如{$title|capitalize}字符串每个单词首字母大写。我们可以自建函数,操作变量。

Smarty模板技术/引擎——变量操作(2)

标签:

原文地址:http://www.cnblogs.com/usa007lhy/p/4969286.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!