//在config目录下创建config.php进行配置 <?php // Smarty 配置文件 // 用Composer安装的Smarty require __DIR__.'/../vendor/autoload.php'; // 创建Smarty模板引擎对象 $smarty = new Smarty(); // 配置四个目录:必选 // 模板文件所在目录 $smarty->setTemplateDir(__DIR__.'/../temp'); // 模板编译文件所在目录 $smarty->setCompileDir(__DIR__.'/../temp_c'); // 缓存目录 $smarty->setCacheDir(__DIR__.'/../cache'); // 配置目录 $smarty->setConfigDir(__DIR__.'/../config'); // 可选配置 //$smarty->setLeftDelimiter('{'); //变量左定界符 //$smarty->setRightDelimiter('}'); //变量右定界符 // 配置缓存 //$smarty->setCaching(false); //关闭缓存 //$smarty->setCacheLifetime(60*60*24); //缓存有效期 //echo '默认模板目录是:'.print_r($smarty->getTemplateDir(),true),'<hr>'; //echo '默认模板编译目录是:'.$smarty->getCompileDir();
需要创建另外3个目录,temp、temp_c、cache,在temp文件下新建demo4.html文件用户存放模板文件,新建demo4.php
//demo4.php <?php //开启session session_start(); //加载smarty require __DIR__.'/config/config.php'; //1.显示单值变量:标量 $name = '小龙女'; //模板赋值 $smarty->assign('name',$name); //2.数组:索引数组 $courses = ['html5','css3','jQuery','php','mysql']; //模板赋值 $smarty->assign('courses',$courses); //3.数组:关联数组 $book = ['name'=>'php开发从入门到放弃','price'=>69,'publish'=>'2018-01-22']; //模板赋值 $smarty->assign('book',$book); //4.数组:多维数组 $books[0] = ['name'=>'php开发从入门到放弃','price'=>69,'publish'=>'2018-01-22']; $books[1] = ['name'=>'Mysql性能分析','price'=>99,'publish'=>'2017-02-10']; $books[2] = ['name'=>'Javascript高级程序设计','price'=>169,'publish'=>'2016-02-22']; //模板赋值 $smarty->assign('books',$books); //5.对象 class Test { public $site = 'php中文网'; public function welcome() { return '欢迎来到'.$this->site; } } $test = new Test(); $smarty -> assign('test',$test); //6.自定义函数 function add($a,$b) { return $a+$b; } //7.常量,不需要赋值,直接在模板中输出 const SITE_NAME = 'PHP中文网,海量资源'; //8.系统变量,不需要赋值,直接在模板中输出 $_POST['user_name'] = '超级管理员'; //$_GET['page'] = 10; $_SESSION['pass'] = sha1('123456'); //模板渲染 $smarty->display('demo4.html');
//demo4.html {* 注释:显示变量 *} <h3>我的梦中情人:{$name}</h3> <h3>我的梦中情人:{"$name `$books.0.name`"}</h3> {* 注释:显示索引数组元素 *} <p>前端课程:{$courses[0]},{$courses[1]},{$courses[2]}</p> <p>前端课程:{$courses['0']},{$courses['1']},{$courses['2']}</p> <p>前端课程:{$courses.0},{$courses.1},{$courses.2}</p> {* 注释:显示关联数组元素 *} <p>书名:《{$book.name}》,价格:{$book.price}元,出版时间:{$book.publish}</p> {* 注释:显示多维数组元素 *} <ul> <li>书名:《{$books.0.name}》,价格:{$books.0.price}元,出版时间:{$books.0.publish}</li> <li>书名:《{$books.1.name}》,价格:{$books.1.price}元,出版时间:{$books.1.publish}</li> <li>书名:《{$books.2.name}》,价格:{$books.2.price}元,出版时间:{$books.2.publish}</li> </ul> {* 注释:显示对象元素 *} <p>站点名称:{$test->site}</p> <h3>{$test->welcome()}</h3> {* 访问自定义函数 *} <p>求和:{add(5,2)}</p> <p>求和:{add($books.1.price,5)}</p> {* 访问常量 *} <p>站点常量:{$smarty.const.SITE_NAME}</p> {* 显示系统变量 *} <p>POST提交的用户名:{$smarty.post.user_name}</p> <p>GET提交的用户名:{$smarty.get.page}</p> <p>SESSION会话中的密码:{$smarty.session.pass}</p> {* 读取配置文件 *} {config_load file="app.conf"} <h3>应用名称是:{$smarty.config.app_name}</h3> <h3>应用名称是:{$smarty.config.page_title}</h3>