smarty模板入门大纲 联系客服

发布时间 : 星期二 文章smarty模板入门大纲更新完毕开始阅读7d64902a453610661ed9f44e

Smarty模板引擎之学习总纲

2011-05-31 16:34:52 作者:xiongxiaoli 来源: 浏览次数:373 网友评论 0 条

摘要:写在前面----smarty模板引擎简介: Smarty是一个使用PHP写出来的模板引擎,是目前业界最著名的PHP模板引擎之一。它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原...

写在前面----smarty模板引擎简介: Smarty是一个使用PHP写出来的模板引擎,是目前业界最著名的PHP模板引擎之一。它分离了逻 辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离。简单的讲,目的就是要使PHP程序员同网 页前台设计人员分离,使程序员改变程序的逻辑内容不会影响到前台人员的页面设计,前台人员重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目中显 的尤为重要。文章来源:北京恒博教育网站培训基地

Smarty模板入门知识

官方网站smarty.php.net上面有论坛,有下载,有手册,有你想要的一切。下面我们切入正题:

(-)安装:

下载的包解压后有三个下级目录:模板文件目录是,其下有四个文件两个目录。首先介绍最重要的:Smarty.class.php它应该是整个smarty模板的核心类,平时应用时也是跟它打交道。

好了,在你的web目录下建立以下目录结构: /lib/smarty /templates_c /templates

/cache

对应压缩包下的libs目录下面放smarty需要的类文件 存放模板文件,程序用到的模板文件都放这里 存放\编译\后的模板文件,目录权限需要设为777 存放缓存的模板文件

以上文件名为smarty默认的文件名,用户可以指定不同的文件名,如:guest_template_dir,admin_template_dir 等。如果不指定将使用以上文件名。 (二)使用:

使用分两步,第一步是设计模板:

以html形式制作模板文件,放置在templates目录下,模板中基本有以下几种情况: 1、模板变量:{$变量名},如 {$color},{$type} {$name} 2、模板数组 {$people.name}
{$people.sex}
{$people.money}

3、使用section对多维数组进行列表输出

{section name=user loop=$userList}

{/section}

{$userList[user].name} {$userList[user].sex} {$userList[user].money}

把以上这些综合起来构成下面这个模板内容

普通变量实例:{$name}
简单数组实例:
{$people.name}
{$people.sex}
{$people.money}
section实例:

{section name=user loop=$userList}

{/section}
{$userList[user].name} {$userList[user].sex} {$userList[user].money}

第二步是设计php脚本:

//当前目录app_1下 //生成$smarty实例

require('lib/smarty/Smarty.class.php'); $smarty = new Smarty;

//指定功能目录,可以自定义

$smarty->template_dir = 'templates';

$smarty->$compile_dir = 'template_c';

//为模板变量赋值 模板:test.html 放于templates下 //$smarty->assign('模板变量名','php内部变量'); //$smarty->display(模板文件名);

$smarty->assign('color','red'); $smarty->assign('name','hello world');

//将输出:helloworld

//为模板数组变量赋值

$people = array('name'=>'巴豆','sex'=>'男','money'=>'a little'); $smarty->assign('people',$people); //将输出: //巴豆 //男

//a little

//模板区块

//{section name=user loop=$userList} //section:标签功能 //name:标签名 //loop:循环数组 //功能循环输出多行 //将输出:

//user1 user1_sex user1_money //user2 user2_sex user2_money //user3 user3_sex user3_money

$userList[] = array('name'=>'user1','sex'=>'user1_sex','money'=>'user1_money'); $userList[] = array('name'=>'user2','sex'=>'user2_sex','money'=>'user2_money'); $userList[] = array('name'=>'user3','sex'=>'user3_sex','money'=>'user3_money');

$smarty->assign('userList',$userList); $smarty->display('test.html'); ?>

运行http://localhost/test.php即可见到如下输出:

Smarty模板进阶教程(一)

在上一篇教程中,我们接触的第一个例子就是简单变量,通过在模板文件的相应位置放置形如{$varname}的变量,然后由php脚本 来$smarty->assign('varname','hello world'); 即可为模板中的变量赋予相应值并最终显示。

但是仅仅简单地赋值就太小儿科了,这次我们来看一下Smarty中的变量调节器,它可以作用于变量,自定义函数和字符串。使用时跟随在变量等的后面,用?|?符号和调节器名称来应用调节器。变量调节器由赋予的参数值决定其行为。多个参数由?:?符号分开。基本形式如下:

{$topic|truncate:40:\

{\

如果你给数组变量应用单值变量的调节,结果是数组的每个值都被调节。如果你只想要调节器用一个值调节整个数组,你必须在调节器名字前加上@符号。例如: {$articleTitle|@count}(这将会在 $articleTitle 数组里输出元素的数目)

下面我们用一个例子来看几个调节器的用法

smarty的模板调节器示例

1. 第一句首字母要大写:{$str1|capitalize}
2. 第二句模板变量 + 张瑜:{$str2|cat:张瑜\

3. 第三句输出当前日期:{$str3|date_format:\年%m月%d日\

4. 第四句.php程序中不处理,它显示默认值:{$str4|default:\没有值!\

5. 第五句要让它缩进8个空白字母位,并使用\取替这8个空白字符:
{$str5|indent:8:\6. 第六句把JaDDy@oNCePlAY.CoM全部变为小写:{$str6|lower}

7. 第七句把变量中的teacherzhang替换成:张瑜:{$str7|replace:\张瑜\8. 第八句为组合使用变量修改器:{$str8|capitalize|cat:\这里是新加的时间:\年%m月%d日\

第二步是设计php脚本:

require_once (\包含smarty类文件 $smarty = new Smarty(); //建立smarty实例对象$smarty