Smarty - 安装+入门小例子
环境:
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下。
目录树如下

代码部分:
1.在test/smarty下创建utf-8无bom格式的main.php,配置smarty的一些成员属性。
<?php
include("Smarty.class.php");
define('SMARTY_ROOT', '../tpls');
$tpl = new Smarty();
$tpl->template_dir = SMARTY_ROOT."/templates/";//设置模板文件的存放目录
$tpl->compile_dir = SMARTY_ROOT."/templates_c/";//设置编译文件的存放目录
$tpl->config_dir = SMARTY_ROOT."/configs/";//设置配置文件的存放目录
$tpl->cache_dir = SMARTY_ROOT."/cache/";//设置缓存文件的存放目录
$tpl->caching=1;//开启缓存
$tpl->cache_lifetime=60*60*24;//有效时间为一天
$tpl->left_delimiter = '[';//smarty语言的左右结束符
$tpl->right_delimiter = ']';
?>
我们知道大括号是smarty的默认定界符,但在和javascript、css等结合时可能会产生冲突,所以这里我们设定为[和]。
2.在test/tpls/templates下面新建html.tpl模板文件,就是在html中加入smarty变量。改模板相当于表现层。
html.tpl的代码如下:
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<title>
[$title]
</title>
</head>
<body>
[$content]
</body>
</html>
3.在test目录下创建smarty.php,该文件相当于驱动层,给上面表现层的变量赋好值,然后显示出来。
smarty.php的代码如下:
<?php
include("smarty/main.php");
$tpl->assign("title","迟到");
$tpl->assign("content","罚款500元!");
$tpl->display("tpls/templates/html.tpl");
?>
4.在浏览器中运行smarty.php即可。
Smarty - 安装+入门小例子的更多相关文章
- Selenium WebDriver + Grid2 + RSpec之旅(三) ----入门小例子
Selenium WebDriver + Grid2 + RSpec之旅(三) ----入门小例子 第一个例子都是比较简单的博客园登录界面,就像学习编程语言时候都是从Hello,World!开始. 1 ...
- 基于vue-cli、elementUI的Vue超简单入门小例子
- 这个例子还是比较简单的,独立完成后,能大概知道vue是干嘛的,可以写个todoList的小例子. - 开始写例子之前,先对环境的部署做点简单的介绍,其实和Vue官方的差不多. #如若没有安装过vu ...
- Ajax入门小例子
大牛文章:http://www.cnblogs.com/guduoduo/p/3681296.html ---Ajax基础学习 http:/ ...
- backbone入门小例子
最近听了个backbone的分享,为了避免听不懂,就先做了个小例子 例子很简单,效果如下 基本视图模板: <script type="tex/template" id=&qu ...
- SpringBoot介绍,快速入门小例子,目录结构,不同的启动方式,SpringBoot常用注解
SpringBoot介绍 引言 为了使用ssm框架去开发,准备ssm框架的模板配置 为了Spring整合第三方框架,单独的去编写xml文件 导致ssm项目后期xml文件特别多,维护xml文件的成本也是 ...
- Python In Action:一、入门小例子
Python In Action这本书真是有点猛,一开头就来这么个例子: import wx class MyFrame(wx.Frame): def __init__(self): wx.Frame ...
- spring+spring mvc+JdbcTemplate 入门小例子
大家使用这个入门时候 最好能够去 搜一下 spring mvc 的 原理,我放一张图到这里,自己琢磨下,后面去学习就容易了 给个链接 (网上一把,千万不能懒) https://www.cnblo ...
- mybatis 不整合spring 入门小例子
先上一个搭建完的项目结构截图: 相对比较重要的配置文件有 db.properties , SqlMappingConfig.xml , mapper/User.xml , log4j.properti ...
- SpringBoot_MyBatisPlus快速入门小例子
快速入门 创建一个表 我这里随便创建了一个air空气表 idea连接Mysql数据库 点击右侧database再点击添加数据库 找到Mysql 添加用户名,密码,数据库最后点击测试 测试成功后在右侧就 ...
随机推荐
- pyrailgun 0.24 : Python Package Index
pyrailgun 0.24 : Python Package Index pyrailgun 0.24 Download pyrailgun-0.24.zip Fast Crawler For Py ...
- Html.raw(转帖)
Razor 在JS中嵌入后台变量 HTML 中定义全局变量 @{int CurrentUserId =ViewBag.CurrentUserId;} JS中取值方式var CurrentUserId ...
- 解决Jedis数据读取乱码问题
现象 同一套代码,同一个数据源,不同的操作系统,在OSX上数据提取编码正常,而Ubuntu上拉取数据乱码,数据拉取代码如下. @Override public List<String> m ...
- 【Linux命令】mysql数据库常用操作命令
#数据库操作: #建立数据库 create database data_name #删除数据库 drop database data_name #查看: show databases; #表操作: # ...
- NotePad++ 配置C/C++编译环境
如果只是测试小程序可以用这种方法 比较方便,如果对于大程序建议使用专业的IDE. 经常需要写一些小程序来运行,又不想运行Visual Studio.Eclipse这样的环境,而Notepad++是一个 ...
- KMP算法解析
介绍一种高效的KMP算法:代码可以直接运行 #include <iostream> #include <iomanip> using namespace std; void p ...
- HTML5 总结-Web存储-7
HTML 5 Web 存储 在客户端存储数据 HTML5 提供了两种在客户端存储数据的新方法: localStorage - 没有时间限制的数据存储 sessionStorage - 针对一个 ses ...
- crontab中使用mysql问题
第1列分钟1-59第2列小时1-23(0表示子夜)第3列日1-31第4列月1-12第5列星期0-6(0表示星期天)第6列要运行的命令 , 并列 - 连续 crontab中不能执行mysql,百分之 ...
- zookeeper 安装
Zookeeper安装 一. 下载zookeeper http://www.apache.org/dist/zookeeper/stable/ 二. 解压zookeeper.tar >& ...
- python中mcmc方法的实现
MCMC方法在贝叶斯统计中运用很多,MIT发布的EMCEE是实现的比较好的.介绍页面在下面.源代码中examples里的代码可以帮助理解各种功能,特别是line.py 列出了最小二乘法,最大似然法和M ...