本文介绍如何准确获取 php 文件的最后修改时间,指出 `stream_get_meta_data()` 无法返回文件时间戳的原因,并推荐使用 `filemtime()` 或 `fstat()` 等专用函数实现。
在 PHP 中,stream_get_meta_data() 返回的是流(stream)的运行时状态信息,例如是否阻塞、是否到达 EOF、封装器类型等,它不包含文件系统层面的元数据(如创建时间、最后访问时间、最后修改时间)。因此,即使你用 fopen() 打开了一个文件,调用 stre
am_get_meta_data() 也永远不会返回 mtime(最后修改时间)等关键时间戳字段——这正是你得到空结果的根本原因。
要获取文件的最后修改时间,应直接操作文件系统元数据。PHP 提供了多个高效且语义明确的函数:
✅ 推荐首选:filemtime()
最简洁、最常用的方式,直接传入文件路径即可:
$filename = 'index.php';
if (file_exists($filename)) {
$lastModified = filemtime($filename);
echo "最后修改时间:" . date('Y-m-d H:i:s', $lastModified);
} else {
echo "文件不存在";
}✅ 进阶选择:fstat()(需已打开文件句柄)
适用于你已在处理文件流且希望复用句柄的场景(如读取同时获取元数据):
$fp = fopen('index.php', 'r');
if ($fp) {
$stats = fstat($fp);
echo "最后修改时间:" . date('Y-m-d H:i:s', $stats['mtime']);
fclose($fp);
}⚠️ 注意事项:
总结:不要混淆“流元数据”与“文件元数据”。对于获取最后修改时间这类需求,请始终优先使用 filemtime()(简单直接)或 fstat()(配合已有文件指针),它们专为文件系统属性设计,稳定、可靠、语义清晰。
立即学习“PHP免费学习笔记(深入)”;
# php
# 字节
# unix
# stream
# EOF
# 封装
# date
# fopen
# 指针
# 文件系统
# 句柄
# 的是
# 进阶
# 多个
# 已有
# 推荐使用
# 均为
# 这类
# 不受
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
网络优化76771 】
【
技术知识130152 】
【
IDC云计算60162 】
【
营销推广131313 】
【
AI优化88182 】
【
百度推广37138 】
【
网站推荐60173 】
【
精选阅读31334 】
相关推荐:
如何理解Go指针和内存分配关系_Go Pointer内存Model解析
php485读数据时阻塞怎么办_php485非阻塞读取设置技巧【详解】
为什么Go需要go mod文件_Go go mod文件作用说明
php删除数据怎么清空表_truncate与delete区别及用法【汇总】
如何使用正则表达式精确匹配最多含一个换行符的 start-end 区段
Win11怎么开启自动HDR画质_Windows11显示设置HDR选项
如何在 Django 中修改用户密码后保持会话不丢失
Win11怎样安装剪映专业版_Win11安装剪映教程【步骤】
php485能和物联网模块通信吗_php485对接NB-IoT模块实例【说明】
PHP主流架构如何做单元测试_工具与流程【详解】
Win11怎样安装搜狗输入法_Win11安装搜狗输入法教程【步骤】
Win11如何开启系统更新 Win11开启系统更新方法【步骤】
Win11怎么设置ip地址_Windows 11手动配置网络IP教程【详解】
php修改数据怎么改富文本_update更新html内容注意事项【说明】
Windows服务持续崩溃怎样修复_系统服务保护机制解析
php报错怎么查看_定位PHP致命错误与警告的方法【教程】
c++的位运算怎么用 与、或、异或、移位操作详解【底层知识】
Win11怎么开启HDR模式_Windows 11高动态范围显示设置指南【详解】
Mac如何使用听写功能_Mac语音输入打字【效率技巧】
Windows10怎么查看系统激活状态_Windows10激活状态查看方法【教程】
如何在JavaScript中动态拼接PHP的base_url与前端变量
Python与MongoDB NoSQL开发实战_文档模型与索引优化
Mac电脑进水了怎么办_MacBook进水后紧急处理方法【必看】
为什么Go建议使用error接口作为错误返回_Go Error接口设计原因说明
如何在Golang中实现CI/CD流水线自动化测试_Golang持续集成测试执行方法
php接口返回数据乱码怎么办_php接口调试编码问题解决【指南】
Python装饰器复用技巧_通用能力解析【教程】
Win11怎么清理C盘OneDrive缓存_Win11清理OneDrive缓存技巧【方法】
Win11相机打不开提示错误怎么修_相机权限开启与驱动修复【影像修复】
Windows电脑如何截屏?(四种快捷方法)
如何使用Golang实现容器健康检查_监控和自动重启
C#怎么使用委托和事件 C# delegate与event编程方法
php本地部署后session无法保存_session存储路径与权限设置技巧【技巧】
如何在 PHP 中按相同键合并两个关联数组为二维数组
如何在Golang中写入XML文件_生成符合规范的XML数据
Win11怎么查看硬盘型号_Windows 11检测硬盘信息方法【技巧】
如何使用Golang安装依赖库_管理模块和第三方包
Windows 10自带杀毒软件在哪_Windows 10打开和使用Windows安全中心
Win11怎么查看wifi信号强度_检测Windows 11无线网络质量方法【详解】
如何使用Golang实现路由参数绑定_使用Mux和Request解析路径变量
Win10文件历史记录怎么用 Win10开启自动备份文件教程【防丢】
如何在 Go 中创建包含映射(map)的切片(slice)结构
Win11怎么更改鼠标指针方案_Windows11自定义鼠标光标样式与大小
Windows10怎么用“讲述人”读屏辅助 Windows10轻松使用开启讲述人朗读屏幕文字帮助视障用户【教程】
Windows10如何重置此电脑_Windows10电脑重置方法【步骤】
Windows10系统怎么查看显卡型号_Win10 dxdiag显示选项卡
Win11怎么关闭自动调节亮度_Windows11禁用内容自适应亮度
Windows10电脑怎么设置文件权限_Win10安全选项卡所有者修改
如何在Golang中使用log包输出不同级别日志_Golang log日志管理与分类
Win11怎么关闭搜索历史 Win11清除搜索框最近记录【隐私】
2026-01-01
致胜网络推广营销网专注海外推广十年,是谷歌推广.Facebook广告全球合作伙伴,我们精英化的技术团队为企业提供谷歌海外推广+外贸网站建设+网站维护运营+Google SEO优化+社交营销为您提供一站式海外营销服务。