您可以在结束脚本之前实际保存页面的输出,然后在脚本开始时加载缓存.
示例代码:
- <?PHP
- $cachefile = 'cache/'.basename($_SERVER['PHP_SELF']).'.cache'; // e.g. cache/index.PHP.cache
- $cachetime = 3600; // time to cache in seconds
- if(file_exists($cachefile) && time()-$cachetime <= filemtime($cachefile)){
- $c = @file_get_contents($cf);
- echo $c;
- exit;
- }else{
- unlink($cachefile);
- }
- ob_start();
- // all the coding goes here
- $c = ob_get_contents();
- file_put_contents($cachefile);
- ?>
如果你有很多页面需要这个缓存,你可以这样做:
在cachestart.PHP中:
- <?PHP
- $cachefile = 'cache/'.basename($_SERVER['PHP_SELF']).'.cache'; // e.g. cache/index.PHP.cache
- $cachetime = 3600; // time to cache in seconds
- if(file_exists($cachefile) && time()-$cachetime <= filemtime($cachefile)){
- $c = @file_get_contents($cf);
- echo $c;
- exit;
- }else{
- unlink($cachefile);
- }
- ob_start();
- ?>
在cacheend.PHP中:
- <?PHP
- $c = ob_get_contents();
- file_put_contents($cachefile);
- ?>
然后只需添加
- include('cachestart.PHP');
在你的脚本开始.并添加
- include('cacheend.PHP');
在脚本的最后.记住要有一个名为缓存的文件夹,并允许PHP访问它.
还要记住,如果您正在进行全页缓存,则您的页面不应具有SESSION特定的显示(例如显示成员的栏或什么),因为它们也将被缓存.查看特定缓存的框架(变量或页面的一部分).