php smarty模版引擎中的缓存应用

1,Smarty缓存的配置:
$smarty->cache-dir="目录名"; //创建缓存目录名
$smarty->caching=true; //开启缓存,为false的时候缓存无效
$smarty->cache_lifetime=60; //缓存时间,单位是秒
2,Smarty缓存的使用与清除
$marty->display("cache.tpl",cache_id); //创建带ID的缓存
$marty->clear_all_cache(); //清楚所有缓存
$marty->clear_cache("index.php"); //清楚index.php中的缓存
$marty->clear_cache("index.php',cache_id); //清楚index.php中指定ID的缓存
3,Smarty的局部缓存
第一个: insert_函数默认是不缓存,这个属性是不能修改
使用方法:例子
index.php中,
function insert_get_time(){
return date("Y-m-d H:m:s");
}
index.html中,
{insert name="get_time"}

第二个: smarty_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的内容如下:
<?php
function smarty_block_cacheless($param, $content, &$smarty) {
return $content;
}
?>
2) 编写程序及模板
示例程序:testCacheLess.php


代码如下:

<?php
include('Smarty.class.php');
$smarty = new Smarty;
$smarty->caching=true;
$smarty->cache_lifetime = 6;
$smarty->display('cache.tpl');
?>

所用的模板:cache.tpl
已经缓存的:{$smarty.now}<br>
{cacheless}
没有缓存的:{$smarty.now}
{/cacheless}
4自定义缓存
设置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来压缩和解压

(0)

相关推荐

  • Smarty模板常见的简单应用分析

    本文实例分析了Smarty模板常见的简单应用.分享给大家供大家参考,具体如下: 首先要将smarty这个类包含进来: include_once '../libs/Smarty.class.php'; 然后创一个Smarty对象: $smarty = new Smarty; 可以自定义Smarty 的开始结束符,默认为{ } $smarty->left_delimiter ='<<'; //左符号为 << $smarty->right_delimiter='>>

  • ThinkPHP使用smarty模板引擎的方法

    ThinkPHP支持多种php模板引擎,可以根据个人需要加以配置. 下面我们以Smarty模板引擎为例,给大家说说具体的操作流程! 首先去Smarty官网上下载一个Smarty.本站下载地址:http://www.jb51.net/codes/16086.html. 接下来解压压缩包,会有两个文件夹:demo和libs.打开libs文件夹,复制所有内容. 接下来,打开你网站根目录 下thinkphp的文件夹.里面有个vendor文件夹,这个文件夹是TP调用第三方类库用的,把刚才复制的东西全部粘贴

  • Smarty安装配置方法

    下载最新的Smarty:http://smarty.php.net/ 当前最新版本:2.6.18 解压后将目录中的libs目录重命名为smarty,复制到你的网站目录,同时在网站根目录下建立templates和templates_c两个目录 建立test.php,内容如下: <?php include_once('./Smarty/Smarty.class.php');$smarty = new Smarty(); $smarty -> template_dir = "./templ

  • smarty半小时快速上手入门教程

    本文讲述了smarty快速上手入门的方法,可以让读者在半小时内快速掌握smarty的用法.分享给大家供大家参考.具体实现方法如下: 一.smarty的程序设计部分: 在smarty的模板设计部分我简单的把smarty在模板中的一些常用设置做了简单的介绍,这一节主要来介绍一下如何在smarty中开始我们程序设计.下载Smarty文件放到你们站点中. index.php代码如下: 复制代码 代码如下: <?php /** * * @version $Id: index.php * @package

  • FCKeditor smarty 编辑器的应用PHP

    感谢csdn社区 hsboy用户的帖子 原文: 6 楼hsboy(PHP it!)回复于 2006-03-05 18:44:07 得分60 假设 1.你要用fckeditor编辑的内容通过$smarty->assign('content', $content)传递到模板 2.fckeditor编辑器放在当前被调用的php程序所在目录(注意不是模板文件所在的目录)的fckeditor目录下 则模板只需这样写即可: 复制代码 代码如下: <script type="text/javasc

  • Smarty模板快速入门

    在PHP的世界里已经出现了各式各样的模板类,但就功能和速度来说Smarty还是一直处于领先地位,因为Smarty的功能相对强大,所以使用起来比其他一些模板类稍显复杂了一点.现在就用30分钟让您快速入门. 一. 安装 首先打开网页http://smarty.php.net/download.php,下载最新版本的Smarty.解压下载的文件(目录结构还蛮复杂的).接下来我演示给大家一个安装实例,看过应该会举一反三的.     (1) 我在根目录下建立了新的目录learn/,再在learn/里建立一

  • smarty简单应用实例

    本文讲述了smarty简单应用实例.分享给大家供大家参考,具体如下: <?php require 'smarty/libs/Smarty.class.php'; $smarty = new Smarty; $smarty->template_dir="smarty/templates/templates"; $smarty->compile_dir="smarty/templates/templates_c"; $smarty->config

  • Smarty高级应用之缓存操作技巧分析

    本文实例讲述了Smarty高级应用之缓存操作技巧.分享给大家供大家参考,具体如下: smarty缓存控制 smarty提供了强大的缓存功能.但有时我们并不希望整篇文档都被缓存,而是有选择的缓存某一部分内容或某一部分内容不被缓存.例如你在页面上端使用一个带有广告条位置的模板,广告条可以包含任何HTML.图象.FLASH等混合信息. 因此这里不能使用一个静态的链接,同时我们也不希望该广告条被缓存. 这就需要在 insert 函数指定,同时需要一个函数取广告条的内容信息.smarty也提供了这种缓存控

  • PHP文件缓存smarty模板应用实例分析

    本文实例分析了PHP文件缓存smarty模板应用.分享给大家供大家参考,具体如下: 一.使用缓存 要开启smarty的缓存,只需将caching设为true,并指定cache_dir即可. 使用cache_lefetime指定缓存生存时间,单位为秒 要对相同页面生成多个不同的缓存,在display或fetch中加入第二参数cache_id,如: $smarty->display('index.tpl',$my_cache_id); 此特性可用于对不同的$_GET进行不同的缓存   二.清除缓存

  • php smarty模版引擎中的缓存应用

    1,Smarty缓存的配置: $smarty->cache-dir="目录名"; //创建缓存目录名 $smarty->caching=true; //开启缓存,为false的时候缓存无效 $smarty->cache_lifetime=60; //缓存时间,单位是秒 2,Smarty缓存的使用与清除 $marty->display("cache.tpl",cache_id); //创建带ID的缓存 $marty->clear_all_

  • php smarty模版引擎中变量操作符及使用方法

    smarty常用的20个变量操作符 * 使用语法:{变量名|操作符:} * capitalize ---首字母大写 * count_characters ---计算字符数 * cat ---连接字符串 * count_paragraphs ---计算段落数 * count_sentences ---计算句数 * count_words ---计算词数 * date_format ---时间格式 * default ---默认 * escape ---转码 * indent ---缩进 * low

  • smarty模板引擎中自定义函数的方法

    本文实例讲述了smarty 自定义函数方法,分享给大家供大家参考.具体如下: 本实例目的:输出 times 次 con的内容(输出4次hello world) 文件1: 复制代码 代码如下: <?php //创建smarty对象 require_once("./libs/Smarty.class.php"); $smarty = new Smarty(); //自定义一个函数 //说明:(1).$arr为一个数组:(2).tpl调用形式{test times="4&qu

  • smarty模板引擎中内建函数if、elseif和else的使用方法

    本文实例讲述了smarty内建函数if.elseif与else的使用方法,分享给大家供大家参考.具体如下: 模板文件:temp.tpl 复制代码 代码如下: <html> <h2>smarty内建函数if.elseif和else的使用</h2> <p style="color:red">实例1-->if的使用:取出键名不等于c3和n3之外的键值</p> {foreach from=$arr4 item=temp}  {f

  • smarty模板引擎中变量及变量修饰器用法实例

    本文实例讲述了smarty变量及变量修饰器的应用.分享给大家供大家参考.具体如下: 模板文件:temp.htm: 复制代码 代码如下: {config_load file="foo.conf"} {$name.na1|cat:$name['na2']} {$name['na1']|cat:'与'|cat:$name.na2} {foreach from=$name item=na} {$na} {/foreach} {$dog->leee()}{$dog->name} &l

  • ThinkPHP模版引擎之变量输出详解

    本文实例分析了ThinkPHP模版引擎中变量输出的用法.分享给大家供大家参考.具体分析如下: 我们已经知道了在Action中使用assign方法可以给模板变量赋值,赋值后怎么在模板文件中输出变量的值呢? 如果我们在Action中赋值了一个name模板变量: 复制代码 代码如下: $name = 'ThinkPHP'; $this->assign('name',$name); 使用内置的模板引擎输出变量,只需要在模版文件使用: {$name} 模板编译后的结果就是 复制代码 代码如下: <?ph

  • Smarty模板引擎缓存机制详解

    本文实例讲述了Smarty模板引擎缓存机制.分享给大家供大家参考,具体如下: 首先说下smarty缓存和编译,这是两个不同的概念,编译默认情况下是启动的,而缓存机制需要人为开启,smarty编译过的文件还是php文件,所以执行的时候还是编译的,如果涉及到数据库,还是要访问数据库的所以开销也不小啦,所以需要smarty缓存来解决! 1.开启全局缓存 $smarty->cache_dir = "/caches/"; //缓存目录 $smarty->caching = true;

  • smarty模板引擎从php中获取数据的方法

    本文实例讲述了smarty模板引擎从php中获取数据的方法.分享给大家供大家参考.具体如下: smarty可以分配($smarty->assign)的变量类型:所有php支持的数据类型--基本数据类型.复合数据类型.特殊数据类型(具体见smarty相关手册). 操作/显示文件:index.php 复制代码 代码如下: <?php //创建smarty对象 require_once("./libs/Smarty.class.php"); $smarty = new Smart

  • smarty模板引擎从配置文件中获取数据的方法

    本文实例讲述了smarty模板引擎从配置文件中获取数据的方法.分享给大家供大家参考.具体如下: 当某个变量值,不希望在程序中写死时,就可以把该变量写到配置文件里,并从中获取(常见的配置样式). 第一步:先写一个配置文件,如数据库的 db.conf,后缀名conf可以随便写,db.ini也行.文件中内容的格式需要固定:key="值",每一行后面不需要添加分号或者什么,直接回国换行,如: 配置文件:db.conf 复制代码 代码如下: host = "localhost"

  • 基于jQuery的JavaScript模版引擎JsRender使用指南

    前言 JsRender是一款基于jQuery的JavaScript模版引擎,它具有如下特点: ·  简单直观 ·  功能强大 ·  可扩展的 ·  快如闪电 这些特性看起来很厉害,但几乎每个模版引擎,都会这么宣传... 由于工作需要,小菜才接触到此款模版引擎.使用了一段时间,发现它确实比较强大,但小菜觉得有些地方强大的过头了,反倒让人觉得很难理解. 另一方面,JsRender的官方文档比较详细,但其他资料出奇的少,遇到点什么问题,基本搜不到,不仅仅是相关问题搜不到,几乎就是没有结果. 再加上Js

随机推荐