本文介绍如何准确获取 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 】
相关推荐:
如何在Golang中处理二进制数据_Golang io与encoding/binary二进制操作方法
Win11玩游戏全屏闪退怎么办_Win11全屏优化禁用设置【教程】
Win11怎么设置ipv4地址_Windows 11固定静态IP地址配置教程【详解】
PHP接收参数值为空怎么办_判断和处理空参数方法说明【说明】
c++怎么使用std::filesystem遍历文件夹_c++ 递归查找文件与权限修改【技巧】
Windows蓝屏错误0x0000002C怎么解决_系统IO异常排查方法
如何使用Golang包导出规则_控制函数和变量可见性
Python数据挖掘核心算法实践_聚类分类与特征工程
如何减少Golang内存碎片化_Golang内存分配与回收优化方法
Windows 11怎么设置默认解压软件_Windows 11为ZIP/RAR文件指定默认打开程序
Win11如何更改用户账户文件夹名称 Win11修改C:Users用户名【终极教程】
Win10怎样卸载TeamViewer_Win10卸载TeamViewer步骤【教程】
Mac如何彻底清理浏览器缓存?(Safari与Chrome)
php485函数怎么捕获异常_php485错误处理机制设置技巧【操作】
Win11怎么开启游戏工具栏_Windows11 Xbox Game Bar快捷键
Win11怎么设置声音输出设备_Windows11音量合成器单独调节应用
如何在 Django 中修改用户密码后保持会话不丢失
Windows10电脑怎么设置防火墙出站规则_Win10禁止程序联网教程
php8.4如何实现队列任务_php8.4redis队列简单实现方法【教程】
Python如何创建带属性的XML节点
Win10怎么卸载剪映_Win10彻底卸载剪映方法【步骤】
Win11怎么关闭触摸屏_禁用Win11笔记本触摸屏功能设置【教程】
mac怎么安装pip_MAC Python pip安装工具与升级方法【详解】
Win10怎么关闭自动更新错误弹窗_Win10策略屏蔽失败提示减少干扰【防护】
Win11怎么设置开机问候语_自定义Win11锁屏提示信息【技巧】
Win11鼠标灵敏度怎么调 Win11鼠标指针移动速度设置【教程】
Win10怎样设置闹钟贪睡时间 Win10闹钟贪睡时长设置【步骤】
c# await 一个已经完成的Task会发生什么
MAC怎么用连续互通相机里的“桌上视角”_MAC在视频通话中同时展示人脸和桌面
Python生成器表达式内存优化_惰性计算说明【指导】
Python包结构设计_大型项目组织解析【指导】
php下载安装后swoole扩展怎么安装_异步框架支持【汇总】
如何在Golang中指定模块版本_使用go.mod控制版本号
Python项目回滚策略_发布安全说明【指导】
Mac如何修改Hosts文件?(本地开发与屏蔽网站)
Drupal 中 HTML 链接被双重转义导致渲染异常的解决方案
Windows10如何彻底关闭自动更新_Win10服务与组策略双重禁用
PHP 中 require() 语句返回值的用法详解
如何在 Pandas 中按元素交集合并两列字符串
如何使用Golang实现基本类型比较_Golang比较操作符使用方法
PythonPandas数据分析教程_数据清洗与处理技巧
Win11怎么清理C盘系统日志_Win11清理系统日志文件【步骤】
如何关闭Win10自动更新更新_Win10系统自动更新双重关闭技巧
Windows10怎样设置家长控制_Windows10家长控制设置方法【指南】
LINUX下如何配置VLAN虚拟局域网_在LINUX交换机与服务器上的实现
网站体验不好=浪费钱:如何提升-用户体验效果差
Win11任务栏怎么放到顶部_Win11修改任务栏位置方法【详细】
C#如何序列化对象为XML XmlSerializer用法
Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤
Win11怎么设置麦克风权限_允许应用访问Win11麦克风【详解】
2026-01-01
致胜网络推广营销网专注海外推广十年,是谷歌推广.Facebook广告全球合作伙伴,我们精英化的技术团队为企业提供谷歌海外推广+外贸网站建设+网站维护运营+Google SEO优化+社交营销为您提供一站式海外营销服务。