日期:2014-05-17  浏览次数:20509 次

php先删除再重新创建某文件时文件的创建日期不更新的问题
代码如下:
PHP code

var_dump(unlink("update1.log"));  //true
$handle=fopen("update1.log","w"); //创建文件
fwrite($handle,date("Y-m-d H:i:s"));
fclose($handle);



预期结果为update1.log的创建时间能变更为fopen()创建文件时的时间。

实际结果是:update1.log的创建时间一直是第一次创建时的时间,就仿佛没有unlink()过一样。

百思不得其解~

求各位大虾谁能帮忙解惑一下~

PS:我的操作系统是win7

------解决方案--------------------
楼上几位有点想当然了

事实的确与楼主观察到得一样,至少在 window 系统中是这样的

不过这与 php 没有关系,是文件系统的原因
估计是当删除文件时并未清除目录项(只做了删除标志),当再次创建时又使用了原先的目录项
可以认为“文件创建时间”应该是目录项的创建时间

php 有取得该时间的函数 filectime


------解决方案--------------------
探讨

楼上说的有道理,有谁知道linux下是什么情况么?