电脑安全

您当前的位置:主页 > 电脑安全 >

php+Smarty的缓存操作-网络编程

来源:[db:来源]标题:   缓存    编辑:电脑技术全能网 时间:2019-09-22 18:30

原标题:php+Smarty的缓存操作-网络编程
   1、应用缓存要开启smarty的缓存,只要将caching设为true,并指定cache_dir便可.应用cache_lefetime指定缓存生活时光,单元为秒要对雷同页面熟成多个差别的缓存,在display或fetch中参加第二参数cache_id,如$smarty->display(''index.tpl'',$my_cache_id);此特征可用于对差别的$_GET停止差别的缓存2、肃清缓存clear_all_cache();//肃清全部缓存clear_cache(''index.tpl'');//肃清index.tpl的缓存clear_cache(''index.tpl'',cache_id);//肃清指定id的缓存3、应用自界说缓存方法设置cache_handler_func应用自界说的函数处置缓存如:$smarty->cache_handler_func = "myCache";function myCache($action, &$smarty_obj, &$cache_content, $tpl_file=null, $cache_id=null, $compile_id=null){}该函数的个别是根椐$action来推断缓存以后操纵:switch($action){case "read"://读取缓存内容case "write"://写入缓存case "clear"://清空}个别应用md5($tpl_file.$cache_id.$compile_id)作为独一的cache_id假如须要,可应用gzcompress和gzuncompress来紧缩息争压4、部分封闭缓存要在某些地区使缓存生效(只对须要的缓存),有几种方式:inser:界说一个inser标签要应用的处置函数,函数名格局为:insert_xx(array $params, object &$smarty)此中的xx是insert的name,也就是说,假如你界说的函数为insert_abc,则模板中应用方式为{insert name=''abc''}参数经过$params传入也能够做成insert插件,文件名定名为:insert.xx.php,函数定名为:smarty_insert_aa($params,&$smarty),xx界说同上register_block:界说一个block:smarty_block_name($params,$content, &$smarty){return $content;} //name表现地区名注册block:$smarty->register_block(''name'', ''smarty_block_name'', false); //第三参数false表现该地区不被缓存模板写法:{name}内容{/name}写成block插件:1)界说一件插件函数:block.cacheless.php,放在smarty的plugins名目block.cacheless.php的内容以下:2) 编写顺序及模板示例顺序:testCacheLess.php所用的模板:cache.tpl曾经缓存的:{$smarty.now}{cacheless}没有缓存的:{$smarty.now}{/cacheless}对于模板中局部不被缓存的处理方法:smarty供给了强盛的缓存功效。但偶然咱们并不盼望整篇文档都被缓存,而是有抉择的缓存某一局部内容或某一局部内容不被缓存。比方你在页面上端应用一个带有告白条地位的模板,告白条能够包括任何HTML、图像、FLASH等混杂信息. 因而这里不能应用一个动态的链接,同时咱们也不盼望该告白条被缓存. 这就须要在 insert 函数指定,同时须要一个函数取告白条的内容信息。smarty也供给了这类缓存操纵才能。咱们能够应用{insert}使模板的一局部不被缓存能够应用$smarty->register_function($params,&$smarty)禁止插件从缓存中输入,还能够应用$smarty->register_block($params,&$smarty)使整篇页面中的某一块不被缓存。上面咱们真对一个简略需要,分辨阐明这三种操纵缓存输入的方式。需要:被缓存的文档中以后时光不被缓存,随每次革新而变更。<

上一篇:PHP操作excel的一个例子-网络编程

下一篇:没有了