关于smarty类的一些解析
特别注意左右分隔符<{}>,display------显示模板的内容(里面是.html文件),assign-------注册变量
<?php //是一个关于smarty类的重点部分以及参数解析 class Smarty { public $leftlimit = "<{";//定义左分隔符 public $rightlimit = "}>";//定义右分隔符 public $attr;//存放变量信息的数组 //注册变量 function assign($k,$v) { $this->attr[$k] = $v; } //显示模板 function display($name) { //造模板的路径 $filename = $mubanlujing.$name;//index.html //获取模板路径 $str = file_get_contents($filename); /*<html> <head></head> <body> <div>{$aa}</div> </body> </html> */ //用正则去匹配字符串中出现的{}的内容 //将内容读取(读取到的数组里面的key),拿key去数组attr里面取value //可以理解成上下的两个例子 /*<html> <head></head> <body> <div><?php echo $attr[key] ?></div> </body> </html> */ //将str里面的文件放到缓存内容 file_put_contents($filename,$str); //将存储的文件加载到当前页面 include($filename); } }
smarty基础如何显示内容以及类型参数
php的页面------main.php
<?php //在这个页面显示 include("../init.inc.php"); $name = "张三";//可以显示字符串 $age = 20;//显示数字 $attr = array("中国","山东","淄博");//索引数组 $att = array("one"=>"你好","two"=>"hello");//关联数组 class Ren { public $name = "不知道"; public $age; } $r = new Ren(); $r->age = "不知道"; //传到html页面时用key $smarty->assign("name",$name);//显示注册变量 $smarty->assign("age",$age);//显示数字 $smarty->assign("dizhi",$attr);//显示索引数组,去索引号 $smarty->assign("yuyan",$att);//可以显示关联数组 $smarty->assign("ren",$r);//读取对象 $smarty->display("main0603.html");//显示模板的内容
templates中的html文件
<html> <head> <meta charset="utf-8" /> </head> <body> <h1>主页面</h1> <div>登陆者是:<span style="color:#C36; background-color:#6FF"><{$name}></span></div> <br /> <div>年龄是:<{$age}></div> <br /> <div>所住的地址是:<{$dizhi[1]}></div> <br /> <div>所会的的语言:<{$yuyan['one']}></div> <br /> <div>两种写法后者优先:<{$yuyan.two}></div> <br /> <div>他的好友姓名:<{$ren->name}></div> <br /> <div>好友的年龄:<{$ren->age}></div> </body> </html>
配置文件:init.inc.php
<?php define("ROOT",str_replace("\","/",dirname(__FILE__)).'/'); //常量ROOT中指定项目根目录 //echo str_replace("\","/",dirname(__FILE__))."/"; require ROOT.'libs/Smarty.class.php'; //加载Smarty类文件 $smarty = new Smarty(); //实例化Smarty对象<br> //$smarty -> auto_literal = false; //就可以让定界符号使用空格 $smarty->setTemplateDir(ROOT.'templates/'); //设置所有模板文件存放位置 //$smarty->addTemplateDir(ROOT.'templates2/'); //添加一个模板文件夹 $smarty->setCompileDir(ROOT.'templates_c/'); //设置编译过的模板存放的目录 $smarty->addPluginsDir(ROOT.'plugins/'); //设置为模板扩充插件存放目录 $smarty->setCacheDir(ROOT.'cache/'); //设置缓存文件存放目录 $smarty->setConfigDir(ROOT.'configs/'); //设置模板配置文件存放目录 $smarty->caching = false; //设置Smarty缓存开关功能 $smarty->cache_lifetime = 60*60*24; //设置缓存模板有效时间一天 $smarty->left_delimiter = '<{'; //设置模板语言中的左结束符 $smarty->right_delimiter = '}>'; //设置模板语言中的右结束符