2010-07-26 49 views
1

根據被設置:http://www.php.net/manual/en/function.filectime.phpPHP的Linux/Unix CTIME(inode修改時間)時,它只是被修改

「在大多數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>"; 

回答

0

沒關係,閱讀http://www.kavoir.com/2009/04/linux-the-differences-between-file-times-atime-accessed-time-ctime-changed-time-and-mtime-modified-time.html

後,它指出:「的ctime - 改變時間,或者文件或目錄的最後改變的時間,只要更改和更新文件如更改文件的所有權或權限或修改文件內容,該文件的ctime更新爲當前時間「

+0

他們並沒有在PHP定義中很好地解釋這一點。 – ParoX 2010-07-26 02:41:09

0

當您更改文件數據 - 更改mtime,因爲mtime(修改時間)是INODE的一部分,所以當mtime被改變,文件元數據也被改變,因此ctime(ch憤怒的時間)也被改變:)