在PHP中判断文件是否被修改过
发表于:2023-03-02 17:29:34浏览:790次
在网站的管理系统中,有时需要查看某个文件是否被修改过、在什么时间被修改的、最后的修改时间是什么时候,本实例就可以实现这个功能,对表单中提交的文件进行判断,检测出修改时间。
关键技术
主要应用filectime()和filemtime()函数,检测文件的incode最后改变时间和最后的修改时间,并应用date()函数对检测返回的时间戳进行格式化。
filectime()函数,返回指定文件filename的inode最后改变时间,语法如下:
int filectime(string filename);
成功则返回UNIX时间戳,否则返回FALSE。
filemtime()函数,返回指定文件filename的最后修改时间,语法如下:
成功则返回UNIX时间戳,否则返回FALSE。
注意:在大多数 Unix 文件系统中,当一个文件的 inode 数据被改变时则该文件被认为是修改了。也就是说,当文件的权限,所有者,所有组或其它 inode 中的元数据被更新时。参见 filemtime()(这才是你想用于在 Web 页面中建立“最后更新时间”脚注的函数)和 fileatime()。
注释:某些 Unix 说明文本中把 ctime 说成是该文件建立的时间,这是错的。在大多数 Unix 文件系统中,没有 Unix 文件的建立时间。
设计过程
首先,设计网页页面。然后,创建一个表单,通过文件域提交要判断的文件。接着,获取表单中提交的文件路径,应用filectime()和filemtime()函数对提交的文件进行检测。最后,输出检测结果。
文件的关键代码如下:
<?php
$file=iconv("utf-8","gb2312",$_POST['files']); //实现编码格式的转换
if(file_exists($file)){ //判断文件是否存在
$change_time=filectime($file); //获取文件的最后incode时间
$time=date("Y-m-d h:i:s",$change_time); //时间戳的格式化
$last_time=filemtime($file); //获取文件的最后修改时间
$times=date("Y-m-d h:i:s",$last_time); //时间戳的格式化
}else{
$result="该文件不存在";
}
?>
获取文件的最后访问时间。
通过文件系统函数不但可以获取文件的最后修改时间,而且可以获取文件的最后访问时间,其应用的是fileatime()函数。
推荐文章
- Layui的table模块导出所有数据,无需修改前后端代码
- ThinkPHP5/6 查询并进行数据计算的快捷方法
- ThinkPHP6的伪静态规则整理(apache、nginx 、IIS)
- 烦人啊!微信总是弹出企业微信邀请信息,怎么关闭通知?
- 微信小程序如何跳转到另一个小程序的实现方法
- PHP实现工作年限自动计算,工作0-6个月的算0.5年,7-12个月的算1年
- 8个前端开发调试技能 浏览器F12高级调试技巧
- Thinkphp6在Windows下使用Phpstudy工具升级或全局安装composer
- 开源的 OA 办公系统 —— 勾股 OA3.7.22 新版发布
- 使用table2excel实现layui数据表格导出复杂表头EXCEL