在PHP中判断文件是否被修改过
发表于:2023-03-02 17:29:34浏览:270次
在网站的管理系统中,有时需要查看某个文件是否被修改过、在什么时间被修改的、最后的修改时间是什么时候,本实例就可以实现这个功能,对表单中提交的文件进行判断,检测出修改时间。
关键技术
主要应用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()函数。
推荐文章
- 推荐一款免费好用的思维导图软件:知犀思维导图
- 谷歌发布全新操作系统chromeOS Flex首个稳定版,可用于 PC 和 Mac
- ThinkPHP动态生成zip压缩包文件并下载的解决方案
- 烦人啊!微信总是弹出企业微信邀请信息,怎么关闭通知?
- Flash已退出历史舞台,未来Web端3D的内容会怎样发展?
- Vue 3.2 刚刚发布!新的单文件组件,响应式性能大幅提升
- composer install常见错误解决方案 --ignore-platform-reqs解决版本冲突
- 微软推出 VS Code for the Web 无需在 PC 上进行安装 打开浏览器就可以开始工作
- 字符编码Unicode新增五个新的行星符号
- 有了css变量这个神器,写css再也不需要less和sass了