




已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- VR技能考核系统设计-洞察及研究
- 2025版供应链管理投资合同转为借款协议书
- 2025版高性能节能型内外墙面施工项目合同
- 2025版旅行社旅游项目策划人员劳动合同范本
- 2025年食品饮料行业电商运营与数字化营销效果评估体系构建
- 数字孪生在城市交通拥堵治理中的交通流量预测与应用报告
- 面向2025年的城市公共自行车系统智能化服务体系建设
- 2025年农业保险产品创新与服务优化对农业保险行业可持续发展的贡献报告
- 2025年城市轨道交通智慧运维系统与智能设备故障预测模型研究报告
- 2025年新型建筑保温材料在建筑节能产业市场拓展中的应用报告
- 2025年财政管理知识竞赛题库及答案
- 满意度调查测评方案
- 区域产业协同发展面试题
- 当归种植培训课件
- 三年(2023-2025)中考语文真题分类汇编(全国)专题22 议论文阅读(解析版)
- 学习2025年初中初三开学第一课专题
- 2025年浙江省教师招聘考试(语文)历年参考题库含答案详解(5卷)
- 医学类案例教学法
- 2025巡护员考试题库及答案
- 2025文化和旅游部直属事业单位招聘社会人员29人模拟试卷附答案详解
- 产前准备课件
评论
0/150
提交评论