根据:http ://www.php.net/manual/en/function.filectime.php
“在大多数 Unix 文件系统中,当文件的 inode 数据发生更改时,文件被视为已更改;也就是说,当 inode 中的权限、所有者、组或其他元数据更新时。”
但是,当我访问和写入文件时运行 Debian linux (uname -r: 2.6.26-2-686),比如使用 PHP 的
$fh = fopen($file, 'a');
fwrite($fh, "hello world");
fclose($fh);
修改时间 (filemtime) 和更改时间 (filectime) 都会得到更新。据我了解,只有当文件的首选项(权限、所有权、名称)发生变化而不是内容本身时,ctime 才会发生变化。
clearstatcache();
echo "$file was last changed: " . date("F d Y H:i:s.", filectime($file)). "<br>";
echo "$file was last modified: " . date("F d Y H:i:s.", filemtime($file)). "<br>";
echo "$file was last accessed: " . date("F d Y H:i:s.", fileatime($file)). "<br>";