php缓存

Posted on 2017-03-16 09:22  王小明爱红领巾  阅读(101)  评论(0编辑  收藏  举报

php缓存的方法有很多,最简单的缓存方法就是使用框架。

先说一下smarty的方法:

首先设置缓存文件位置:

1
$filename "../cache/huancun.html"//缓存文件存放的位置

设置缓存间隔:

1
$time = 10; //缓存有效期10秒

判断缓存文件是否存在,如果缓存文件存在直接调用缓存,如果缓存文件不存在重新缓存:

1
2
3
4
5
6
7
8
9
10
11
if(file_exists($filename) && ((filemtime($filename)+$time)>= time()) )
{
    //直接调用缓存
    include($filename);
}
else
{
    //重新缓存
    ob_start(); //开启内存缓存
     
    代码部分。。。。。。。<br>     <br><br>     $smarty->display("huancun.html"); 

              $str = ob_get_contents(); //获取内存中的缓存内容
              file_put_contents($filename,$str);

1
2
3
    ob_flush(); //关闭内存缓存
     
}

 如果要使用分页缓存的话需要修改为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
$p = 1;
if(!empty($_GET["page"]))
{
    $p $_GET["page"];
}
 
$filename "../cache/huancun{$p}.html"//缓存文件存放的位置
 
$time = 10; //缓存有效期10秒
 
 
 
//判断缓存文件是否存在,如果缓存文件存在直接调用缓存,如果缓存文件不存在重新缓存
if(file_exists($filename) && ((filemtime($filename)+$time)>= time()) )
{
    //直接调用缓存
    include($filename);
}
else
{
    //重新缓存
    ob_start(); //开启内存缓存
     
    分页代码。。。。。。。。。
 
 
    $smarty->display("huancun.html");
     
    $str = ob_get_contents(); //获取内存中的缓存内容
    file_put_contents($filename,$str);
     
    ob_flush(); //关闭内存缓存
     
}

 同理,如果没有使用smarty模板。只要将ob_start()与ob_flush()之间的代码修改为普通php代码即可。