各位大神,如果的动态页面是INDEX.PHP,我如何实现页面缓存呢?缓存是存在服务器吧?
例如,我的INDEX.PHP代码是这样的:
<?php
session_start () ;
include("IncDB.php");
$result=mysql_query("SELECT * FROM mates",$link);
$row=mysql_fetch_row($result);
//下面是若干PHP代码最后是生成一个动态页面。
>
我的问题是:
1、要怎么做才能把该页面缓存下来呢?因为该页面内容变化不大,但会有变化。
2、在用户打开INDEX.PHp时,先判断该页面有无页面缓存,如有则显示缓存页面,否则链接数据库显示内容。
3、缓存页面每7天自动更新一次。
我看了网上的一些介绍,如 ob_start(),我基础太差,没学会怎么用,用在哪里。。。麻烦告诉我详细的办法,而不是思路!谢谢各位大神。
回复讨论(解决方案)
把这段代码放到文件开始处
<?php$fn = str_replace('/', '_', $_SERVER['PHP_SELF'] . '.cache';if(file_exists($fn) && time()-filemtime($fn)<7*24*60*60) { readfile($fn); exit;}ob_start('cache');function cache($s) { global $fn; file_put_contents($fn, $s); return $s;}?>
是紧跟着放在
后面就可以么?谢谢!另外,我在哪里能看到这个缓存页面呢?我怎么知道现在打开的页面是缓存页面还是原来 的动态页面呢?谢谢!
我试了,表面看,没有什么变化。不知道有没有起作用。。。