标签:time() contents class ber 最简 pac name contain ace
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代码即可。
标签:time() contents class ber 最简 pac name contain ace
原文地址:http://www.cnblogs.com/xingyue1988/p/6538481.html