如何在PHP中实现此缓存控制策略?

时间:2010-05-03 16:22:44

标签: php cache-control

仅在上次访问后文件发生变化时才提供新内容。

我该如何实现?

更新

很抱歉不提及它,但请求的资源是直接请求的网页,而不是图片。

1 个答案:

答案 0 :(得分:2)

您可以使用从rails借来的技巧,并将最后一个文件修改时间附加到include:

$fileName = 'image.jpg';
$httpLink = $fileName . '?' . filemtime( $fileName );
echo '<img src="', $fileName, '" alt="blah" />';

这将输出类似

的链接
<img src="image.jpg?1002412" alt="blah" />   

然后当文件改变时,查询字符串也会改变,浏览器将请求“新”文件,即

<img src="image.jpg?1003622" alt="blah" />

或者,您可以保留文件修订的本地日志,并从数据库而不是文件系统中读取修订版号,这可能稍微快一点(并保存文件系统读取,尽管它没有显着差异 - 依赖于db vs web server load )。