smarty模板引擎学习笔记.doc_第1页
smarty模板引擎学习笔记.doc_第2页
smarty模板引擎学习笔记.doc_第3页
smarty模板引擎学习笔记.doc_第4页
smarty模板引擎学习笔记.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Day011Smarty:模板引擎。1一、使用smarty步骤:1例1.1入门案例:未传数据2例1.2传数据3例1.3传二维数组4例子:传一个年龄值到模板上,然后提示他是老年,中老年,中年,青年,少年,小孩6例1.4隔行背景颜色不一样。7变量调节器9例2:date10例3:mb_substr10模板上直接使用预定义变量10例4模板上直接使用预定义变量11模板上直接使用常量11模板的拆分11二、总结12使用smarty核心思想:12Smarty的使用步骤:12套模板标签13循环标签13条件标签13变量调节器14Day0214一、注册函数14作用:14特点:14二、缓存(文件缓存,内存缓存)15配置缓存步骤15三、静态化16如何生成静态文件步骤:16Smarty:模板引擎。第 15 页 共 18 页Day01(php + HTML)的缺点:1、代码乱,html+php2、维护难,成本高。3、代码耦合性大。Smarty:模板引擎。html,呈现页面,让客户-表现层php-数据处理-数据层目录结构demo文件Template:所有的模板文件(test.html)Template_c:模板运行时的编译文件源码包libs文件Plugins:插件Sysplugins:系统程序Smarty.class.php:入口文件代码文件:Test.php一、使用smarty步骤:1、 加载smarty的入口类smarty.class.php2、 实例化smarty;$ob=new smarty3、 设置模板家目录;$ob-setTemplateDir($dir)4、 设置模板编译文件所在的家目录;$ob-setCompileDir($dir)5、 数据处理并把数据传给模板;$ob-assign(“”,”)6、 指定定界符7、 显示模板;$ob-display($dir)8、 在模板上接收数据:例1.1入门案例:未传数据setTemplateDir($dir)$ob-setTemplateDir(ROOT.demo/templates);/ 4、设置模板编译文件所在的家目录;$ob-setCompileDir($dir)$ob-setCompileDir(ROOT.demo/templates_c);/ 5、数据处理并把数据传给模板/ 6、显示模板;$ob-display($dir)$ob-display(test.html);/ 7、在模板上接收数据效果声明一个一维数组$arr=array(“id”=20,”title”=”标题1”,”content”=”内容和大家是否开始的发货时刻”)传递数据$ob-assign(“t”,”title”);$ob-assign(“c”,”content”);例1.2传数据setTemplateDir($dir)$ob-setTemplateDir(ROOT.demo/templates);/ 4、设置模板编译文件所在的家目录;$ob-setCompileDir($dir)$ob-setCompileDir(ROOT.demo/templates_c);/ 5、数据处理并把数据传给模板/ 声明一个一维数组$arr=array(id=20,title=标题1,content=内容和大家是否开始的发货时刻);$ob-assign(t,$arrtitle);$ob-assign(c,$arrcontent);/ 6、显示模板;$ob-display($dir)$ob-display(test.html);/ 7、在模板上接收数据;在HTML文件中指定位置$t$c效果解决标记定界符的冲突:$ob-left_delimiter=right_delimiter=;模板上如何使用数组 一维: 二维:$v例1.3传二维数组第一部分test.phpleft_delimiter=right_delimiter=;/ 3、设置模板家目录;$ob-setTemplateDir($dir)$ob-setTemplateDir(ROOT.demo/templates);/ 4、设置模板编译文件所在的家目录;$ob-setCompileDir($dir)$ob-setCompileDir(ROOT.demo/templates_c);/ 5、数据处理并把数据传给模板/ 声明一个一维数组$arr=array(array(id=20,title=标题1,content=内容和大家是否开始的发货时刻1),array(id=20,title=标题2,content=内容和大家是否开始的发货时刻2),array(id=20,title=标题3,content=内容和大家是否开始的发货时刻3),array(id=20,title=标题4,content=内容和大家是否开始的发货时刻4),array(id=20,title=标题5,content=内容和大家是否开始的发货时刻5);/* $ob-assign(t,$arrtitle);$ob-assign(c,$arrcontent); */$ob-assign(arr,$arr);/ 6、显示模板;$ob-display($dir)$ob-display(test.html);/ 7、在模板上接收数据;在HTML文件中指定位置$t$c第二部分test.htmlInsert title here $v a href=test.php?id=  无记录 $v a href=test.php?id= p href=test.php?id=   无记录 效果: Foreach的属性 $vlast:是否为最后一个循环 $vfist:是否为第一次一个循环 $vpre:是否为上一个循环 $vnext:是否为下一个循环 $vtotal 总循环多少次$viteration 当前是第几次循环$vindex 当前元素的索引下标条件标签.例子:传一个年龄值到模板上,然后提示他是老年,中老年,中年,青年,少年,小孩=12=18=28=4560第一部分.html年龄阶段:if $age小孩elseif $age少年elseif $age青年elseif $age中年elseif $age中老年老年第二部分.php$age=$_GETage;$smarty-assign(age,$age);/把数组传给模板list.html$smarty-assign(arr,$arr);/显示模板$smarty-display(list.html);说明:从URL地址中给相应的年龄值则显示对应的年龄阶段例1.4隔行背景颜色不一样。Insert title here.ul3border:1px solid blue;.ul3 liborder-bottom:1px dashed red;padding:0;list-style:none;.ul3 pborder-bottom:1px dashed red; $v a href=test.php?id=  无记录 $v a href=test.php?id= p style=background:#abcdef;border-bottom:0; href=test.php?id=   a href=test.php?id= p style=background:#abcdef; href=test.php?id=   a href=test.php?id= p style=background:#fedcba;border-bottom:0; href=test.php?id=   a href=test.php?id= p style=background:#fedcba; href=test.php?id=   无记录 效果变量调节器使用函数对变量进行二次处理说明:函数可以是php的系统函数,也可以是自定义函数,也可以是smarty给我们提供的函数。例子:字符串截取$str例2:date第一部分.php$ob-assign(t,time();$ob-display(test.html);第二部分.HTML 显示时间:例3:mb_substr第一部分.php $ob-assign(t,time(); $str=我爱北京天安门; $ob-assign(str,$str); $ob-display(test.html);第二部分.HTML字符串截取:模板上直接使用预定义变量$_POST$smarty.post.名称$_GET$smarty.get.名称$_REQUEST$smarty.request.名称$_COOKIE$smarty.cookies.名称$_SESSION$smarty.session.名称$_SERVER$smarty.server.下标在模板上随便显示一个cookie值。1、创建一个cookie2、例4模板上直接使用预定义变量第一部分.phpvar_dump(setcookie(usename,123,0,/);第二部分.HTMLcookie:模板上直接使用常量例:define(ROOT,D:/www/pro/smarty/);模板的拆分例:/url的基地址define(BASE_URL,http:/localhost/11_Smarty/);作业:完成文章模块,使用smarty思考题:在项目一中如何使用smarty二、总结使用smarty核心思想:1、把html和php分离2、主程序php要给模板传数据3、显示模板4、模板标签,为了展现页面效果。Smarty的使用步骤:1、加载smarty类require ROOT.libs/Smarty.class.php;2、实例化对象$smarty=new Smarty();3、指定模板的家目录$smarty-setTemplateDir(路径);4、指定模板编译文件的家目录$smarty-setCompileDir(路径)5、指定定界符$smarty-left_delimiter=right_delimiter=;6、数据处理(调用数据模型的方法)7、把数据传到模板上$smarty-assign(到模板上叫什么,被传递的变量);8、显示模板$smarty-display(模板文件的路径);套模板标签变量标签循环标签$v属性:$vfirst$vlast$vindex$viteration$vtotal条件标签.变量调节器在模板上常量的直接使用预定义变量的直接使用在一个模板中引用其他模板Day02一、注册函数作用:把主程序中函数注册到模板上,也就是模板可以直接调用。1,、在主程序中用一个php文件2、 让smarty对象把这个函数注册到模板上。3、 在模板上调用。特点:主程序中的函数至多有两个参数。第一个参数传进来是模板上调用函数时,传的所有参数。第二个参数:自动传入smarty对象实例:获取文章的函数function getNews($params,$s)$where=$paramswhere;/查询文章条件$start=$paramsstart;/limit子句开始位置$num=$paramsnum;/获取几条记录$charLen=$paramscharLen;/如果标题过长,截取/获取文章数据(调用类的方法)$ob=new News();$arr=$ob-getNewsByList(*,$start,$num,id desc,$where);/呈现一个列表$contentStr=;/呈现列表的html代码foreach($arr as $v)$contentStr.=.my_substr($vtitle, $charLen).;return $contentStr;模板上:二、缓存(文件缓存,内存缓存) 作用:减轻数据库的压力 配置缓存步骤:1、开启缓存$marty-caching=true;2、设置缓存目录$smarty-setCacheDir(ROOT.)3、指定缓存的有效时长$smarty

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论