如何在未来的php /中编写我的HTTP响应头8小时

时间:2010-09-29 12:09:33

标签: php http-headers

我知道如何在PHP中设置一个基本的expires HTTP响应头,如下所示......

header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");

但是,我想让它变得更加动态,因为我希望使用PHP在用户访问内容之前8小时指定到期时间。有人可以帮助我实现这个目标吗?

提前致谢!

2 个答案:

答案 0 :(得分:1)

使用strtotime在以后制作时间戳,并gmdate将其格式化为GMT时区中的字符串。

define('EXPIRE_FORMAT', 'D, d M Y H:i:s T');
$expires = gmdate(EXPIRE_FORMAT, strtotime('+8 hours'));
header("Expires: $expires");

答案 1 :(得分:1)

您可以使用Cache-Control’s max-age来表示相对于响应时间的秒数:

  

实体的到期时间可以由原始服务器使用Expires头指定(参见第14.21节)。或者,可以在响应中使用max-age指令指定它。当缓存响应中存在max-age cache-control指令时,如果当前年龄大于新资源请求时给出的年龄值(以秒为单位),则响应过时。

一个例子:

header('Cache-Control: max-age=28800');

请注意,如果 Expires Cache-Control max-age 都存在, max-age 优先于 Expires

  

如果响应同时包含Expires标头和max-age指令,则max-age指令会覆盖Expires标头,即使Expires标头限制性更强。