在PHP中判断文件是否被修改过
发表于:2023-03-02 17:29:34浏览:2292次
在网站的管理系统中,有时需要查看某个文件是否被修改过、在什么时间被修改的、最后的修改时间是什么时候,本实例就可以实现这个功能,对表单中提交的文件进行判断,检测出修改时间。
关键技术
主要应用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()函数。
推荐文章
- IE11将停用并停止支持,此后IE正式谢幕,Edge接棒
- ThinkPHP6多应用多语言切换,最佳解决方案
- 微信H5版使用php Ffmpeg将微信录音amr转mp3
- 宝塔Linux面板安装Composer依赖管理工具与PHP依赖包的方法
- CRM系统中的线索、商机、联系人、客户分别是什么,它们之间的关系是如何转换的?
- ref, toRef, toRefs,reactive, defineComponent, computed, unref, toRaw, watchEffect, onUpdated 10个VUE3前端API总结
- 开源OA办公系统 — 勾股OA 5.6.8 新春版发布,企业办公的卓越选择
- ThinkPHP6多条件搜索查询,表达式查询 FIND_IN_SET查询
- SAAS系统中多租户数据库设计方案探讨
- PHP将透明图片(PNG)合并到JPG背景图片上,实现PNG透明的效果

