ImageVerifierCode 换一换
格式:PDF , 页数:11 ,大小:154.04KB ,
资源ID:5936657      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/5936657.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(smarty模板引擎学习笔记 smarty教程.pdf)为本站上传会员【xrp****65】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

smarty模板引擎学习笔记 smarty教程.pdf

1、PHP 本身就是一种标签语言,允许代码用标签的形式任意嵌套在 html 里,因此,我们可以用 PHP 自身的这种特性,完成 controller 与 view 的分离.1:Smarty 可以协助我们分离 PHP 与 html 代码,就是记 html 制作人员看不到 PHP 标签也可以对网站进行缓存2:面试是要用到3:体会模板的思想1:Cotroller 与 view 的分离是一种功能上的分离,是一种分工的思想.而 php 与 html 代码的分离,仅是代码层面或视觉层面上的分离.2:smarty 与 MVC 有什么关系?没关系.Smarty 完成的仅是代码分离.3:不用 smarty,仍然是能

2、够完成 MVC 模式的开发Smarty 的一些负面思考:1:混杂在 HTML 代码中 smarty 标签和 PHP 代码.对于 web 前端开发人员来说,没有实质区别2:在实际开发中,html 模板-smarty 模板的制作,依然是由 PHPer 来完成的3:解析,编译本身消耗性能4:增多了很多变量,(页面内的变量,都要赋值到 smarty 对象-_tpl_vars 属性上,多了一个变量的副本)Smarty 模板类的工作流程1:引入 smarty 模板类2:assign 赋值,把外界变量传到对象内部(存在一个属性上)3:display(编译模板,把标签模板编译成 html+php 混杂的形式)

3、4:运行编译后的模板Smarty 的引入Smarty 是一个类,引入过程与普通的类没有区别1:include,require 包含此文件2:实例化Smarty 的配置$template_dir=templates;/模板文件的所在目录$compile_dir=templates_c;/编译后的文件所在目录$config_dir=configs;/允许独立的配置文件存在,并且配置文件如果多了,允许单独放在一个目录里,$cache_dir=cache/代表缓存文件的存放目录plugins_dir=array(plugins,p2,p3);/插件目录(如果自行开发插件,可能会用到)left_deli

4、miter=;/标签的左分界符Right_delimiter=/标签的右分界符Smarty 的赋值1:$smarty-assign(key,value);发生的变化$smarty-_tpl_varskey=value;2:如果 assign($arr$vluae)中的第一个参数是数组则会循环数组,把数组$arr中的$value 赋给$smarty 的标签$key3:append 追加赋值如果需要把多个值,赋给同一个标签变量,不必把多个值形成数组然后赋值,可以通过 append,往一个标签反复追加值.例:$smarty-append(goods,自行车);$smarty-append(goods

5、火车);此时:推论$smarty-_tpl_varsgoods=array(自行车,火车);如果append进去的值是数组,并且第3个merge参数为true,则会把数组单元逐个添加到goods数组里去.$smarty-append(goods,array(name=刘备,age=28),true);此时,$smarty-_tpl_varsgoods=array(自行车,火车,name=刘备,age=28);如果是$smarty-append(goods,array(name=刘备,age=28),false);此时,$smarty-_tpl_varsgoods=array(自行车,火车,a

6、rray(name=刘备,age=28);Smarty 模板中,对变量的引用变量来源1:assign 赋值得到的变量2:$smarty 系统变量3:从配置文件读取的变量1.1 对于 assign 赋值得到的变量对于字符串型,数值型,直接通过$标签名 来引用1.2 对于数组变量如果键是字符串,则用$标签名.键如果键是数字,则用$标签名键1.3 对于对象方式用$标签名-属性名 来引用对象的属性值用$标签名-方法()来调用对象的方法的返回值2.1 smarty 中的系统变量以$smarty 开头例:$smarty.now,被 解析成 time();$smarty.get.key-$_GETkey$s

7、marty.const.常量名-echo 常量名3.1 从配置文件得到的变量配置文件可以用来存储常用且很少变的数据,比如网站名,备案号通过配置文件得到这些信息,不必去读数据库,可以省一些数据库的开销.配置文件的写法;配置项 1=值 1配置项 2=值 2配置文件的载入Config_loadfile=xxx.conf配置文件中变量的引用$smarty.config.配置项或者#配置项#模板中的逻辑控制从 MVC 的角度看,在模板中加逻辑控制不正确的,但是,有时,不同的场景下,模板的差异非常小时,就比较适合在模板里加逻辑控制,可以减少模板的数量.If 控制结构if 表达式./ifIf else 控制

8、结构if 表达式.else./ifIf elseif 控制结构if表达式.else if 表达式./ifSmarty 中的 foreach 控制结构要循环谁:某个数组 A当前循环的单元的键赋给哪个临时变量 B当前循环的单元的值赋给哪个临时变量 Cforeach from=$tag key=k ietm=c./foreach用 foreach 完成表格隔行换色功能$smarty-_foreach 属性,是一个数组如果 smarty 的 foreach 有 name 属性,设 name=abc则 smarty-_foreachabc=array(total=循环体个数,iteration=0);然

9、后每循环一次,iteration 递增 1可以引用$smarty.foreach.foreahcname.key 的属性Key=total:循环个数Iteration:当前循环次数Index:当前索引,iteration-1First:判断是否是第 1 次循环Last:判断是否是最后一次循环注意:foreach 的 name 不能重复Smarty 中数学运算&比较运算&逻辑运算Smarty 比较运算符,=,),lt(=),eq(=),不一一列举,可以在 smarty_comilper.class.php 的 1330 行左右看到比较运算符的扩充情况.|&,or and标签中可以进行数学的+1*

10、/%运算,但是注意,1:运算符两边不要有空格2:运算表达式应以标签开头Smarty 中的变量调节器例:$intro|upper,会把$info 的内容转换为大写原理:把$intro 作为参数,传给 upper 调节器对应的函数,并显示该函数值,而不是$intro$标签变量本身 会当成 调节器的第 1 个参数自动传入,如果需要传更多参数,在调节器后面,用:隔开更多参数.例$news|truncate:7:.常用变量调节器date_format 格式化日期default 默认值escape 编码indent 缩进lower 小写nl2br 换行符替换成 replace 替换strip 去除(多余空

11、格)strip_tags 去除 html 标签upper 大写动手写一个变量调节器*:如何做到中文截取无乱码(常见的一道面试题)Display,fetch 的区别Display 是 ftech 方法第 4 个参数为 true 的调用.Fetch 第 4 个参数为 true,则把编译后文件的运行结果,输出!.为 false,则把编译后文件的运行,返回,不输出.即:display()=echo fetch();如何实现页面静态化?就是把.php 的输出内容,保存成 html但需要考虑以下细节:1:生成的静态页面的地址,例:253 新闻,如果是动态情况下,News.php?nid=253如果生成了静

12、态页面 253.html不能直接放一个目录下,要按规律分目录,例如 年/月日/类别/253.html大批量生成静态页面,以织梦为例新闻表,有个字段标志:是否已生成静态页面,另个字段记录:生成后静态页面的地址生成列表页面或主页时,从新闻表取地址注意目录的深度:目录深不利于 SEO,浅的话,每个目录放的页面过多.Smarty 如何获取 PHP 编译文件要输出的内容答:利用输出缓冲来实现Ob_*系列函数今日狗咬人明天人咬狗12/0510/ecom/253.html缓存1:首选打开缓存配置项$smarty-caching=true;2:缓存生命周期的配置选项:$smarty-cache_lifetim

13、e=整数秒2:$smarty-is_cached()判断是否缓存,如果缓存,则避免 IO 操作局部缓存通过 hash 值,把局部不缓存的数组包围起来,用该 hash 值,把整个缓存文件 explode 拆成数组Arrray(html 代码不缓存内容,Html 代码不缓存内容)循环该数组,分析不缓存内容,把数组分析出来,读取数组的$arrname,该 name 就是不缓存内容,而且是待调用函数的名称.调用 insert_name(),把函数的返回值替换掉不缓存内容数组循环替换一遍之后,就把页面上所有不缓存的部分都替换成了函数的返回值,最后,再把数组 implode 拼接起来,就是最终的页面内容.

14、单模板多缓存Display(模板名,缓存名);同一个模板名,如果不加缓存名,只能生成一个缓存文件.如果有缓存名,则会按 缓存名+模板名 生成缓存文件.如果同一个模板,提供不同的缓存名,则一个模板会产生多个缓存.同理,在判断某个模板是否已被缓存的时候,也需要注意,要传一个缓存名.即 is_cached(模板名,缓存名)才能合理判断.清除缓存清除缓存就把模板名+缓存名对应的缓存文件删除掉Clear_cache(模板名,缓存名);Clear_all_cache();Smarty 定界符冲突的解决如果 smarty 用定界符,比如,此定界在 js,css 里都有很可能碰到,如果碰到,会当成 smarty 标签来解析,进而引发错误发生.解决方法:1:换定界符,如 template_dir 目录来定位一:缓存按缓存位置分:文件缓存或者内存缓存1:文件缓存就是把数据以文件形式保存,这个过程,是消耗 IO 资源.2:页面缓存或者静态页面,缓存的是整体 html 代码,有大量的冗余的缓存.按缓存内容分:页面缓存和数据缓存3:真正应该缓存的是数据,而不是文件例如:1500W 条数据中,300W 条被频繁访问,可以把这 300W 条数据(不是静态页面),缓存到内存.甚至把 300W 条数据缓存到数据库4:images,js,css,等文件进行 前端缓存

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服