65.9K
CodeProject is changing. Read more.
Home

Caching Output in PHP

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.44/5 (12 votes)

Dec 17, 2009

CPOL
viewsIcon

36861

Introduction...

Introduction

High-traffic sites can often benefit from caching of pages, to save processing of the same data over and over again.

Using the Code

Put the first function cache_start in the beginning of php script and the second cache_end in the end of script.
$_time : cache time
$dir : directory to cache files

function cache_start($_time, $dir)
{
  $cachefile = $dir.'/'.sha1($_SERVER['REQUEST_URI']).'.html';
  $cachetime = $_time;
  ob_start();

  if(file_exists($cachefile) && (time( )-$cachetime < filemtime($cachefile)))
  {
    include($cachefile);
    ob_end_flush();
    exit;
  }
}

function cache_end($dir)
{
  $cachefile = $dir.'/'.sha1($_SERVER['REQUEST_URI']).'.html';
  $fp = fopen($cachefile, 'w');
  fwrite($fp, ob_get_contents());
  fclose($fp);
  ob_end_flush();
}