$value) { $keys[] = $key . "=" . $value; } sort($keys); return md5(implode('&', $keys)); } function cache_filename() { global $cache_dir; return $cache_dir . '/' . cache_key() . '.cache'; } function cache_exists() { global $cache_time; if(@file_exists(cache_filename()) && time() - $cache_time < @filemtime(cache_filename())) { return true; } else { return false; } } function read_cache() { return file_get_contents(cache_filename()); } function save_cache($value) { $fp = @fopen(cache_filename(), 'w'); @fwrite($fp, $value); @fclose($fp); } function start_cache() { if(cache_exists()) { echo read_cache(); exit(); } else { ob_start(); } } function stop_cache() { $data = ob_get_clean(); save_cache($data); echo $data; } ?>