若相依 发表于 2015-2-3 23:32:31

PHP网页设计手把手教你Smarty缓存手艺

在学习PHP这六个月里,每看到一个优秀的php脚本,就会兴奋的手舞足蹈,嘴里还不停的说:太酷了,太酷了。呵呵,很幼稚吧,但这可能就是兴趣。      人人应当晓得缓存机制能能无效的加重网站的办事器压力,Smarty模板引擎的一大亮点就是为咱们供应了十分复杂的缓存操作,上面就让咱们进修一下。
  起首咱们要晓得Smarty缓存机制分为全局缓存,局部缓存,部分缓存三种,咱们逐一引见。
  1、全局缓存
  望文生义,全局缓存就是为全部网站的全体页面都生成缓存页面。
  起首咱们要操作smarty的设置装备摆设文件,开启缓存,指定缓存文件目次,并设置缓存的存活工夫
  $smarty->cache_dir = ‘./cache/’; //设置寄存缓存文件的文件夹
  $smarty->caching = 1;//开启缓存 0、FALSE代表封闭非0数字、TRUE代表开启
  $smarty->cache_lifetime = 3600//单元为秒(假如填写-1为永不外期)
  接上去咱们要去详细的php页面设置与之对应的详细缓存文件的名字
  $url=md5($_SERVER['REQUEST_URI']);//将以后页面的URL(包括?前面的一切参数)停止md5加密
  $smarty->display(‘list2.html’,$url);//设置缓存文件名
  需求注重的是:
  $smarty->display(‘与之对应的模板文件名’,'缓存文件名的增补局部’)这个办法。
  第二个参数不是必需的,假如不写的话,缓存文件名就是讲过加密处置的模板文件名。
  然而如许会碰着一个对照辣手的成绩:
  http://localhost/1.10/sm/list2.php?lan=1
  http://localhost/1.10/sm/list2.php?lan=2
  http://localhost/1.10/sm/list2.php?lan=3
  3个URL对应应当的分歧的内容,然而生成的缓存文件名都是list2.html加密后的了局。
  这就会招致用户想要查询的是分歧的内容,会见的倒是统一个缓存文件。
  所以建议加上一个帮助参数,将会见url(包括?前面的一切参数)md5加密是作者对照保举的一种。
  2、局部缓存
  起首懂得甚么叫局部缓存,其实就是指定一些文件生成缓存文件,而非网站的全体文件。
  懂得了需求到达的后果,接上去咱们就来详细操作
  操作之前,咱们先要强调一个概念:
  局部缓存的本色实际上是局部不缓存,也就是说不是指定那些文件生成缓存,而是指定详细一些文件不生成缓存
  假定有3个文件:
  1.php //需求缓存
  2.php //需求缓存
  3.php //不需求缓存
  在1.php/2.php文件中仍是还是写上$smarty->display(‘与之对应的模板文件名’,’缓存文件名的增补局部’)这个办法。
  但在3.php中咱们要出格指明不需求生成缓存,详细的办法是:
  $smarty->clear_cache(‘与之对应的模板文件名’)//写在$smarty->display(‘与之对应的模板文件名’)之前仍是以后都可以
  固然$smarty->display(‘与之对应的模板文件名’)仍是要写,原本就不想生成缓存,第二个参数也就不需求了。
  $smarty->clear_cache()和$smarty->display()的参数必定要写成分歧的
  3、部分缓存
  起首让咱们懂得下部分缓存的意思,就是指定统一页面下的某些部分中央生成缓存。
  一样的在这里咱们也要把思绪反转一下。
  其实不是指定哪些部分生成缓存,而是哪些部分不生成缓存(这和局部缓存的操作思惟是相似的)。
  话不多说,先举一个实例
  1.php
  $time=time();
  $smarty->assign(‘time’,$lanmuarr);
  function insert_timeget()
  {
  return time();
  }
  $smarty->display(’1.html’);
  
  1.html
  {$time}
  //开启缓存后,反复刷新这个不会变
  {insert name=’timeget’}
  //开启缓存后,反复刷新这个会变
  看懂了这个例子咱们来注释下个中的道理
  在PHP中咱们只需界说了
  函数名为insert_自界说增补名的自界说函数,在个中前往的值,不需求assign()办法传递,就可以直接在模板页面中以{insert name=’自界说增补名’}的体例挪用,同时不会遭到缓存的影响,而及时刷新
  好了到这里咱们关于smarty的3中缓存体例就全体解说完了,有乐趣的伴侣可以本人实验下分歧的后果。
那么接下来,这就算学会啦?NO,NO,NO,还早呢,你至尽还没碰过OOP之类的吧?模板呢?

蒙在股里 发表于 2015-2-4 01:42:41

首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。

兰色精灵 发表于 2015-2-9 09:23:51

说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。

再现理想 发表于 2015-2-27 05:10:19

如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,

不帅 发表于 2015-2-27 13:27:28

微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox支持的不是很好,所以能少用还是少用的好。

分手快乐 发表于 2015-3-7 04:56:32

有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。

第二个灵魂 发表于 2015-3-14 10:46:44

说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。

小女巫 发表于 2015-3-21 02:19:05

php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。

老尸 发表于 2015-4-10 10:06:53

首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。

深爱那片海 发表于 2015-4-14 19:47:55

实践是检验自己会不会的真理。

若相依 发表于 2015-4-17 17:36:07

先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。

变相怪杰 发表于 2015-4-22 07:18:46

为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。

小魔女 发表于 2015-4-27 10:19:16

装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。

只想知道 发表于 2015-6-7 06:09:36

使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。

海妖 发表于 2015-7-3 01:07:04

首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。

admin 发表于 2015-7-7 00:21:56

本文当是我的笔记啦,遇到的问题随时填充

若天明 发表于 2015-7-7 22:08:25

如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了,

莫相离 发表于 2015-7-10 07:19:58

如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,

柔情似水 发表于 2015-7-11 19:55:21

遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。

山那边是海 发表于 2015-7-12 11:53:37

本文当是我的笔记啦,遇到的问题随时填充
页: [1]
查看完整版本: PHP网页设计手把手教你Smarty缓存手艺