# Smarty模板引擎
## 自定义的一个Smarty引擎:
```
class Smarty{
public $arr;
function assign($key,$val){
$this->arr['$key'] = $val;
}
function dispaly($file){
$str = file_get_contents($file);
$ptn = '/\{\$(.+)\}/i';//向后引用(.+)
$rep = '<?php echo $this->arr[$1]?>';
$page = preg_replace($ptn,$rep,$str);
$filename = "tpls_c/".md5($file).".php";
file_put_contents($filename,$page);
include $filename;
}
}
$name = 'userlll';
$smarty = new Smarty();
$smarty->assign('name',$name);
$smarty->display('tpls/index.html');
```
## Smarty模板引擎工作原理
smarty是一个使用PHP写出来的PHP模板引擎,它提供了逻辑与外在内容的分离,简单来讲,目的就是要使PHP同前端人员分离,使得程序员改变程序的逻辑内容不会影响到前端人员的页面设计,前端人员重新修改页面不会影响到程序的逻辑,这在许多人合作中的项目显得尤为重要。
模版引擎是用于把模版文件和数据内容合并在一起的程序,便于网站开发有利于代码分离和维护。
## Smarty模版引擎得安装
1.到[官网](https://www.smarty.net/)去下载最新版得Smarty模版引擎
2.模版结构如下
![](https://box.kancloud.cn/a37abf7f9b37a470708ebd264b75d4c7_742x429.png)
我们只需要把libs拷到我们项目根目录就可以了,其它得文件可以删除,因为用不到
3.创建一些文件
![](https://box.kancloud.cn/d1bd95ba7520b8c74c0e6c8d97dc805a_651x338.png)
红色标注的文件夹都是新创建的
## Smarty模版引擎的基本配置
```
<?php
/**
* Created by PhpStorm.
* User: d
* Date: 2018/11/18
* Time: 9:54
*/
include("libs/Smarty.class.php");
$s = new Smarty();
$s->left_delimiter = "<{";//设置变量解析符,在页面中使用,比如<{name}>就可以解析name变量
$s->right_delimiter = "}>";
$s->setTemplateDir("tpls");//设置存放模版文件的目录
$s->setCompileDir("tpls_c");//设置存放编译好的模版文件目的录
$s->setConfigDir('conf');//设置存放配置文件的目录
$s->setCacheDir("cc");//设置存放缓存文件的目录
$s->caching = true;//设置开启缓存
$s->assign("name",'user1');
$s->display('index.html');
开启缓存之后,系统默认的缓存时间是一个小时,在缓存文件目录中存放的是一个静态缓存文件,除非模版文件发生变化不然的话会一直走模版文件,缓存的好处就是以后访问除非模版发生变化,不然的话就会调用缓存文件,速度会很快。
```
- PHP操作集合
- 获取字符首字母
- PHP实现定时备份MySQL数据库
- PHP定时发送邮件
- PHP基本语法
- 总结
- 命名空间
- 错误抑制符
- 位运算符
- 原码,反码,补码
- traits
- PHP的反射机制
- const和define的区别
- 语法
- 常用的函数
- 1.变量及打印函数
- 2.引入文件
- 3.常量
- 4.错误处理
- 5.面向对象
- 数据结构与算法
- 结构
- 数组
- 索引
- 散列表(哈希表)
- 栈
- 队列
- 链表
- 算法
- 排序算法
- 插入排序
- 冒泡排序
- 选择排序
- 归并排序
- 快速排序
- 查找算法
- 二分查找
- 二分查找变形版本1:查询数据在序列中第一次出现
- 哈希算法
- 算法复杂度
- Smarty模板引擎
- composer
- yaf
- yaf的安装配置
- 其它
- Java
- JavaSE
- 1.Java发展及JDK安装配置
- 2.Eclipse的下载及安装
- 3.Java开发基础
- 虚拟机
- 2.编辑虚拟机设置
- 1.虚拟机下安装centos
- 3.安装vmtools
- Linux
- 1.vi和vim编辑器
- 2.开机、重启和用户登录注销
- 3.用户管理
- 4.用户组管理
- 5.用户和组的相关文件
- 6.linux运行级别
- 7.帮助指令
- 8.文件目录类指令
- 9.时间日期类
- 10.搜索查找类
- 11.压缩和解压缩
- 12.组管理和权限管理(难点,重点)
- 虚拟主机的配置
- phpstudy快捷配置
- 配置文件配置
- PHP面向对象高级特性
- SPL标准库(PHP标准库)
- PHP链式操作的实现
- 面向对象编程的基本原则
- 设计模式
- 基本的设计模式