« 控制Lilina中缓存文件是否过时的机制 »
Weblog » http://www.anysql.net/weblog/lilina_php_cachetime.html 2006-09-13这个问题的关键是在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的缓存机制时学到的.


http://www.google.com/search?q=Etag
比较 Etag