使用缓存提取PHP解释过的页面

class ArrCache(string path,[int time],[string type]);
*       path:      cache文件保存目录,从根目录算起,首尾不需要“/”
*       time:              缓存时间,默认120秒
*       type:              缓存文件后缀,默认“txt”
*
*     void endCache();
*       在页面最后写上,否则这行后边的数据不会被缓存。
*
*/
ob_start();
class ArrCache
{

//构造函数
function ArrCache($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;
  }
}

//在文件最后加入这行,输出所有缓存内容,并且写入缓存文件。
function endCache()
{
  $fp      = fopen($this->fileName,"w");
  fwrite($fp,ob_get_contents());
  fclose($fp);
  ob_end_flush();
}

}

/********演示代码********/
$cache = new ArrCache('cache',5,'txt');

for ($i=0;$i<5;$i++)
{
  echo $i;
  sleep(1);
}


$cache->endCache();

« 上一篇 | 下一篇 »
只显示10条记录相关文章
php header 跳转 (浏览: 451, 评论: 0)
定时清理旧的log文件 (浏览: 1806, 评论: 1)
FIREFOX取动态input值 (浏览: 1158, 评论: 0)
用css方式巧妙保护邮箱地址 (浏览: 1183, 评论: 0)
PHP5_OOP面向对象---教程下载 (浏览: 2298, 评论: 0)
vc++中用ado连接oracle数据库 (浏览: 4172, 评论: 0)
在DISDUZ!5.5中添加代码高亮插件成功 (浏览: 3122, 评论: 1)
xajax+php的一个DEMO--Blackjack(21点) (浏览: 3503, 评论: 3)
关于使用PHP6的感受 (浏览: 2735, 评论: 0)
[PHP AJAX] 简单比较 xajax、AJASON、flxAJAX、Aja... (浏览: 2711, 评论: 0)
Trackbacks
点击获得Trackback地址,Encode: UTF-8 点击获得Trackback地址,Encode: GB2312 or GBK 点击获得Trackback地址,Encode: BIG5
发表评论

评论内容(*):