smarty安装及例子

王朝学院·作者佚名  2016-08-28
窄屏简体版  字體: 小  |  中  |  大  |  超大  

环境:

smarty

1.在http://www.smarty.net/download下载最新smarty包,window选择zips,linux下选择tar.gz。以windows为例,下载后解压,如f:\smarty。

2.把解压出来的smarty目录里lib目录拷贝到test里,重命名为smarty。在test目录下,创建tpls目录,在tpls目录下,创建templates、templates_c、configs、cache目录,这几个目录分别是模板目录(必要),解析目录(必要),配置目录(可选),缓存目录(可选),

smarty的php代码和这四个目录是同一个级的,html代码放在templates下。

目录树如下

[flash=500,400]http://s1.knowsky.com/20160211/wtlkcb2tkvg09.jpg[/flash]

代码部分:

1.在test/smarty下创建utf-8无bom格式的main.php,配置smarty的一些成员属性。

[flash=500,400]http://s1.knowsky.com/20160211/knbgtv2ukwk09.gif[/flash]

1 <?php

2 include("Smarty.class.php");

3 define('SMARTY_ROOT', '../tpls');

4 $tpl = new Smarty();

5 $tpl->template_dir = SMARTY_ROOT."/templates/";//设置模板文件的存放目录

6 $tpl->compile_dir = SMARTY_ROOT."/templates_c/";//设置编译文件的存放目录

7 $tpl->config_dir = SMARTY_ROOT."/configs/";//设置配置文件的存放目录

8 $tpl->cache_dir = SMARTY_ROOT."/cache/";//设置缓存文件的存放目录

9 $tpl->caching=1;//开启缓存

10 $tpl->cache_lifetime=60*60*24;//有效时间为一天

11 $tpl->left_delimiter = '[';//smarty语言的左右结束符

12 $tpl->right_delimiter = ']';

13 ?>

[flash=500,400]http://s1.knowsky.com/20160211/knbgtv2ukwk09.gif[/flash]

我们知道大括号是smarty的默认定界符,但在和javascript、CSS等结合时可能会产生冲突,所以这里我们设定为[和]。

2.在test/tpls/templates下面新建html.tpl模板文件,就是在html中加入smarty变量。改模板相当于表现层。

html.tpl的代码如下:

[flash=500,400]http://s1.knowsky.com/20160211/knbgtv2ukwk09.gif[/flash]

1 <html>

2 <head>

3 <meta http-equiv="Content-type" content="text/html; charset=utf-8">

4 <title>

5 [$title]

6 </title>

7 </head>

8 <body>

9 [$content]

10 </body>

11 </html>

[flash=500,400]http://s1.knowsky.com/20160211/knbgtv2ukwk09.gif[/flash]

3.在test目录下创建smarty.php,该文件相当于驱动层,给上面表现层的变量赋好值,然后显示出来。

smarty.php的代码如下:

1 <?php

2 include("smarty/main.php");

3 $tpl->assign("title","迟到");

4 $tpl->assign("content","罚款500元!");

5 $tpl->display("tpls/templates/html.tpl");

6 ?>

4.在浏览器中运行smarty.php即可。

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航