缓存PHP页面包含两个文件,一个文件“test.php”,用来测试缓存,一个页面是“CachePage”,用一个类提供缓存的方法和设置缓存的时间。
注意,使用本技巧,必须先在当前目录下创建一个"cache"文件夹,用来保存缓存文件。test.php内容如下所示。
<html><body>
<?
include('CachePage.php'); //要使用缓存文件,必须加载缓存文件CachePage.php
$cache = new CachePage('cache',5,'txt'); //调用缓存文件中的方法,三个参数说明见缓存文件
for ($i=0;$i<10;$i++)
{
echo $i; //输出
sleep(1); //睡眠
}
$cache->endCache();
?>
</body>
</html>
CachePage.php的文件如下所示。
<?php
ob_start();
class CachePage
{
//构造函数-参数path表示缓存位置,time表示缓存的时间(默认120),type表示缓存文件的类型(将缓存文件保存为txt格式)
function CachePage($path,$time = 120,$type = 'txt')
{
$this->path = $path;
$this->time = $time;
$this->fileType = $type;
$this->fileName = $_SERVER['DOCUMENT_ROOT'].'\\'.$this->path.'\\'.md5($_SERVER['URL'].'?'.$_SERVER['QUERY_STRING']).'.'.$this->fileType; //当前文件地址
if (file_exists($this->fileName) && ((filemtime($this->fileName)+$this->time) > time()))
{
$fp = fopen($this->fileName,"r"); //读取缓存文件的操作
echo fread($fp,filesize($this->fileName));
fclose($fp);
ob_end_flush();
exit;
}
}
//在test.php文件最后,加入此方法,写入缓存文件。
function endCache()
{
$fp = fopen($this->fileName,"w");
fwrite($fp,ob_get_contents());
fclose($fp);
ob_end_flush();
}
}
?>
运行test.php,一定要运行两次,并对比前后结果。因为只有第二次才会生成缓存。
posted on 2007-11-09 09:22
技术是第一生产力 阅读(409)
评论(0) 编辑 收藏 引用 所属分类:
PHP技巧