
本文介绍如何在 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),而非包含文件路径。
✅ 推荐解决方案(简洁、可靠、无需遍历目录):
<footer align="center">
<hr width="900px" size="2" noshade="noshade" color="black" align="center">
<div style="padding:0 30px">
<p>Validated by:</p><div class="aritcle_card flexRow">
<div class="artcardd flexRow">
<a class="aritcle_card_img" href="/xiazai/code/11154" title="佳可商务购物程序 2004"><img
src="https://img.php.cn/upload/webcode/000/000/019/176516281398486.jpg" alt="佳可商务购物程序 2004" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a>
<div class="aritcle_card_info flexColumn">
<a href="/xiazai/code/11154" title="佳可商务购物程序 2004">佳可商务购物程序 2004</a>
<p>在原版的基础上做了一下修正评论没有提交正文的问题特价商品的调用连接问题去掉了一个后门补了SQL注入补了一个过滤漏洞浮动价不能删除的问题不能够搜索问题收藏时放入购物车时出错点放入购物车弹出2个窗口修正主题添加问题商家注册页导航连接问题销售排行不能显示更多问题热点商品不能显示更多问题增加了服务器探测 增加了空间使用查看 增加了在线文件编辑增加了后台管理里两处全选功能更新说明:后台的部分功能已经改过前台</p>
</div>
<a href="/xiazai/code/11154" title="佳可商务购物程序 2004" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span> </a>
</div>
</div><p><span>立即学习</span>“<a href="https://pan.quark.cn/s/7fc7563c4182" style="text-decoration: underline !important; color: blue; font-weight: bolder;" rel="nofollow" target="_blank">PHP免费学习笔记(深入)</a>”;</p>
<a href="https://validator.w3.org/check?uri=referer">@@##@@</a>
<a href="https://jigsaw.w3.org/css-validator/check/referer">@@##@@</a>
<p>Last modified:
<?php
// ✅ 正确获取当前被访问页面(主脚本)的最后修改时间
$mainFile = $_SERVER['SCRIPT_FILENAME'];
if (file_exists($mainFile)) {
$timestamp = filemtime($mainFile);
$date = new DateTime();
$date->setTimezone(new DateTimeZone("America/New_York"));
$date->setTimestamp($timestamp);
echo $date->format("F j, Y g:i a");
} else {
echo "Unknown (file not found)";
}
?>
</p>
</div>
</footer>⚠️ 注意事项:
- $_SERVER['SCRIPT_FILENAME'] 是最直接、最安全的方式,无需硬编码路径或遍历目录;
- 若站点部署在 Windows 环境,确保路径分隔符兼容(PHP 会自动处理,无需额外 str_replace);
- 建议添加 file_exists() 检查,防止因路径异常导致 filemtime() 报错;
- 时区设置应与你的本地开发/部署环境一致;如需统一 UTC,可改用 new DateTimeZone("UTC");
- 避免使用 get_included_files() 或 debug_backtrace(),它们不可靠且性能开销大。
? 进阶提示:若需显示“当前页面及所含关键文件(如 header.php、config.php)中最晚的修改时间”,才需采用原答案中的目录扫描方案;但对绝大多数教学项目而言,精准反映主页面时间已完全满足需求——清晰、高效、零维护成本。










