这个问题的关键是在PHP取得文件的最后修改时间, 其实很简单:

function mtime($filename)
{
        $fd = fopen($filename, "r");
        $fstat = fstat($fd);
        fclose($fd);
        return $fstat['mtime'];
}

    取得当前时间, 返回自从Unix纪元(格林威治时间1970年1月1日 00:00:00)到当前时间的秒数:

  $curtime = time();
  echo "Current Date:".date('Y-m-d', $curtime)."\n";

    两个时间相减得到的结果是秒数. 可以用如下方法确定缓存文件是否过时:

if ( (time() - mtime($filename)) > $CACHE_FILE_TIMEOUT) then
{
  ...
}

    以上是我在改动Lilina的缓存机制时学到的.