·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设开发 >> php网站开发 >> 初来乍到--------smarty

初来乍到--------smarty

作者:佚名      php网站开发编辑:admin      更新时间:2022-07-23
初来乍到--------smarty

Smarty

Day01-----smarty的使用作用:把php+html分离,程序和美工使用:1、下载源码包2、目录结构libs源码文件Smarty.class.phptemplate //模板文件 html文件template_c //程序运行过程中,自动产生的,模板编译文件3、实例化require "Smarty.class.php";$smartyOb=new Smarty();4、配置告诉Smarty哪个目录是放模板html的$smartyOb->setTemplateDir(path);告诉smarty哪个目录是放编译文件的$smartyOb->setCompileDir(path)5、显示模板$smartyOb->display("模板名称及路径");如何给模板传值$smartyOb->assign('模板上名称',被传递的变量);在模板上如何调用模板标签{$名称}数组{$数组名.下标}二维数组array(0=>array('title'=>'t1','pubtime'=>1234567890,'author'=>'xiaoli'),1=>array('title'=>'t2','pubtime'=>1334567890,'author'=>'xiaoli'),array('title'=>'t3','pubtime'=>1434567890,'author'=>'xiaoli'),array('title'=>'t4','pubtime'=>1534567890,'author'=>'xiaoli'),)遍历数组{foreach 数组名 as 变量名}{$变量名.title}{/foreach}下标值<{$变量名@key}> <{$变量名@index}>循环次数<{$变量名@total}>当前是第几次循环<{$变量名@iteration}>是否为第一次循环<{$变量名@first}>是否为最后一次循环<{$变量名@last}>案例:实现一个隔行背景颜色变化<{if 条件}>代码<{/if}>练习:给每个li加上下划线(虚线),最后一行除外

了解内容:<{section name=s1 loop=被遍历的数组}><{$被遍历的数组[s1].下标}><{/section}>属性:<{$smarty.section.s1.total}><{$smarty.section.s1.index}><{$smarty.section.s1.iteration}><{$smarty.section.s1.last}><{$smarty.section.s1.first}>练习:使用section,实现隔行背景颜色不一样

变量调节器模板标签定界符的指定:<{}>$smartyOb->left_delimiter="<{";$smartyOb->right_delimiter="}>";

day02---------,回顾day01的内容,扩充新知识

Smarty1、Smarty,放在php主程序中2、配置$smartyOb->setTemplateDir()$smartyOb->setCompileDir()$smartyOb->left_delimiter()$smartyOb->right_delimiter()3、给模板传值$smartyOb->assign("模板变量名称",变量);4、显示模板$smartyOb->display(path);{$名称}{$数组.下标}{foreach 数组名 as 变量}{$变量名}{/foreach}标签属性:{$变量名@key}{$变量名@index}{$变量名@iteration}{$变量名@total}{$变量名@first}{$变量名@last}{if 条件}{else}{/if}变量调节器:{第一个参数|函数名:第二个参数:.......}文章详细页:02_detail.php?id=51、配置smarty2、接收文章id3、实例化pdo4、拼sql语句5、执行6、获取数据7、给模板传值8、显示模板9、套模板标签,使用主程序传递过来的数据

页面拆分{include file="模板的路径"}注册函数function fun1(){return 'abc';}$smartyOb->registerPlugin("function","模板函数名","被注册的函数名称");在模板上调用:{模板函数名称 名=值 名=值 ....}如何传参???1、参数个数最多两个,第一个接收的模板上所有的传参,第二参数接收的是当前的smarty对象。缓存数据库中的数据被缓存。好处:减轻了MySQL服务器的压力1、指定缓存文件的存放目录$smartyOb->setCacheDir(ROOT."day02/cache");2、开启缓存$smartyOb->caching=true;3、指定缓存的生命周期。$smartyOb->cache_lifetime=100;//秒作用:判断缓存文件是否存在且有效$smartyOb->isCached("模板名称及路径",id)$smartyOb->display("模板名称及路径",id);