在PHP中判断文件是否被修改过
发表于:2023-03-02 17:29:34浏览:1986次
在网站的管理系统中,有时需要查看某个文件是否被修改过、在什么时间被修改的、最后的修改时间是什么时候,本实例就可以实现这个功能,对表单中提交的文件进行判断,检测出修改时间。
关键技术
主要应用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()函数。
推荐文章
- 2021年度个税汇算今起开始,3月1日至3月15日需要预约,3月16日至6月30日,无需预约
- 新一代的CRM系统的操作权限和数据权限的设计
- 82个常规的前端JavaScript方法封装(1~10)
- 开源免费的CMS内容管理系统,勾股CMS2.0发布
- Layui的table模块导出所有数据,无需修改代码,完美解决方案
- 推荐:腾讯开源的Markdown编辑器,轻量简洁、易扩展,开箱即用
- 微软Edge浏览器在100版本里程碑之前的最后一个稳定版Edge99发布
- ThinkPHP 6.1.2 版本发布,兼容 PHP8.2以及对ThinkORM3.0 版本的支持
- 用形容词来描述各种颜色
- Xshell提示 “要继续使用此程序,您必须应用最新的更新或使用新版本”

