PEAR Cache is an excellent package that allows you to cache function calls, output, and more
<?php
require_once('Cache/Output.php');
/* Create a new instance of the output cache,
storing as a file in the /tmp directory */
$cache = new Cache_Output('file',
array('cache_dir' => '/tmp'));
/* Generate the ID for the cached content based on the
values which effect the output of the page. */
$cache_id = $cache->generateID(array('url' => $_SERVER['REQUEST_URI'],
'post' => $_POST));
/* Begin the cache by checking if this version of the
content has already been cached or not. */
if($content = $cache->start($cache_id)) {
echo $content;
exit;
}
/* Generate the content to be cached */
/* Cache the content and display it for this request */
echo $cache->end();
?>