You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PHP中设置Last-Modified响应头?

PHP 手动设置 Last-Modified 响应头实现缓存优化

直接用以下代码即可实现需求,它不仅会发送对应文件修改时间的Last-Modified响应头,还会处理客户端的缓存验证请求,返回304状态码以充分利用缓存机制:

// 获取当前PHP文件的最后修改时间戳
$lastModified = filemtime(__FILE__);

// 将时间戳格式化为HTTP标准要求的GMT日期字符串
$lastModifiedHeader = gmdate('D, d M Y H:i:s \G\M\T', $lastModified);

// 发送Last-Modified响应头
header("Last-Modified: $lastModifiedHeader");

// 检查客户端是否发送了If-Modified-Since请求头,验证缓存有效性
if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])) {
    // 解析客户端传来的时间为时间戳
    $clientModifiedTime = strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']);
    
    // 如果文件自客户端上次请求后未修改,返回304状态码并终止脚本执行
    if ($clientModifiedTime >= $lastModified) {
        header("HTTP/1.1 304 Not Modified");
        exit;
    }
}

// 下方编写你的页面业务逻辑
echo "你的页面内容";

关键说明:

  • __FILE__:PHP魔术常量,代表当前执行脚本的完整路径,确保获取的是承载代码的目标PHP文件的修改时间。
  • gmdate():必须使用GMT时区格式化日期,这是HTTP协议对响应头日期格式的强制要求。
  • 304状态码处理:这一步是缓存机制生效的核心,否则客户端无法识别缓存有效性,仍会每次请求完整内容。

内容的提问来源于stack exchange,提问作者Jordan Clark

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 17:22:06