【问题标题】:difference between fileatime and filectime in phpphp中fileatime和filectime的区别
【发布时间】:2015-04-23 08:56:27
【问题描述】:

在 php 手册中,fileatime 被定义为“文件的最后访问时间”。但在我的代码中,我打开并读取了文件内容。但是 fileatime 给了我一个可以追溯到 2 月 16 日的日期。这意味着我最后一次访问了该文件在 2 月 16 日??。但我现在访问了该文件。为什么它没有给我当前日期??

set_include_path('c://Users/shimantta/Desktop/');
$file='hehe.txt';
$open=fopen($file,'r');
echo fread($open,filesize($file)).'</br>';
echo "Last modified: ".date("F d Y H:i:s.",filemtime($file)).'</br>';
echo "Last modified: ".date("F d Y H:i:s.",fileatime($file)).'</br>';
echo "Last modified: ".date("F d Y H:i:s.",filemtime($file));

我要复制到这里

最后修改时间:2015 年 2 月 21 日 19:57:21。

最后修改时间:2015 年 2 月 16 日 05:56:16。

最后修改时间:2015 年 2 月 21 日 19:57:21。

【问题讨论】:

    标签: php filemtime


    【解决方案1】:

    文件访问时间应该是最后一次访问文件。

    问题是,在当今的许多系统上,访问时间都没有得到维护。例如,在挂载(例如 fstab)时,可以声明访问时间根本不更新。

    在许多系统上,此功能被禁用,因为 SSD 会磨损得更快,因为经常会进行小的更改,例如更改文件的访问时间。我猜,你得到的访问时间就是创建时间,因为在创建时,时间被写入一次并且永远不会更新。

    因此,您只有一个文件的修改时间和创建时间(也应该作为单独的时间戳提供)。

    【讨论】:

      【解决方案2】:

      filemtime() 为您提供上次更改内容的时间。

      以及手册中的引述:

      该函数返回文件数据块被写入的时间,即文件内容发生变化的时间。

      编辑:

      现在我知道你在问fileatime()fopen() 不会像您期望的修改时间那样更新。你想用touch()来更新修改时间。

      【讨论】:

      • 我也更改了文件内容,添加了一些字符。但仍然给出相同的结果
      • @AL-zami 啊,你问的是fileatime()而不是filemtime(),我的错。更新了我的答案
      猜你喜欢
      • 2011-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-05
      • 2010-11-17
      • 2010-11-11
      • 2011-04-07
      相关资源
      最近更新 更多