
本文介绍如何在 php 公共页脚中准确显示**当前被访问页面**(而非 footer.php 自身)的最后修改时间,避免使用 `__file__` 导致所有页面显示同一时间戳的问题。
在使用 include "footer.php" 的多页面网站中,一个常见误区是直接在 footer.php 中调用 filemtime(__FILE__)——这只会返回 footer.php 本身的修改时间,导致所有页面底部显示完全相同的时间戳,无法反映各页面(如课程作业文件 assignment1.php、project2.php)真实编辑时间。
要实现“每个页面显示自身最后修改时间”,关键在于:让页脚获知当前正在执行的主脚本路径。PHP 提供了可靠的全局变量 $_SERVER['SCRIPT_FILENAME'],它始终指向当前被 Web 服务器直接请求的 PHP 文件的绝对路径(例如 /var/www/html/assignment3.php),而非包含文件路径。
✅ 推荐解决方案(简洁、可靠、无需遍历目录):
⚠️ 注意事项:
- $_SERVER['SCRIPT_FILENAME'] 是最直接、最安全的方式,无需硬编码路径或遍历目录;
- 若站点部署在 Windows 环境,确保路径分隔符兼容(PHP 会自动处理,无需额外 str_replace);
- 建议添加 file_exists() 检查,防止因路径异常导致 filemtime() 报错;
- 时区设置应与你的本地开发/部署环境一致;如需统一 UTC,可改用 new DateTimeZone("UTC");
- 避免使用 get_included_files() 或 debug_backtrace(),它们不可靠且性能开销大。
? 进阶提示:若需显示“当前页面及所含关键文件(如 header.php、config.php)中最晚的修改时间”,才需采用原答案中的目录扫描方案;但对绝大多数教学项目而言,精准反映主页面时间已完全满足需求——清晰、高效、零维护成本。










