ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# 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'); 开启缓存之后,系统默认的缓存时间是一个小时,在缓存文件目录中存放的是一个静态缓存文件,除非模版文件发生变化不然的话会一直走模版文件,缓存的好处就是以后访问除非模版发生变化,不然的话就会调用缓存文件,速度会很快。 ```