首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 取得檔案時間:mtime、ctime、atime 差異與應用

     編輯:PHP 相關知識

三種時間定義

函數意義觸發情況
filemtime()內容修改時間檔案內容被寫入/修改
filectime()狀態改變時間inode 變更:權限、擁有者、移動、重命名、內容修改
fileatime()最後存取時間讀取檔案(含 include、require、fopen 讀取)

基本用法

回傳值與錯誤處理

  • 成功:Unix 時間戳(整數)
  • 失敗:false 並觸發 E_WARNING
  • 建議用 @ 抑制警告或先 file_exists() 判斷

效能與快取注意

  • PHP 會快取 stat() 結果,同一請求多次呼叫回傳相同值。
  • 需即時結果呼叫 clearstatcache()。
  • fileatime() 於某些檔案系統(掛載 noatime/relatime)可能不更新或延遲更新。

實務應用場景

1. 檔案快取有效性檢查

2. 同步工具比較來源/目的檔案

 filemtime($dest)) {
    copy($src, $dest); // 來源較新,覆蓋
}

3. 監控檔案變更(簡易輪詢)

 $lastMtime) {
        echo "檔案已修改!";
        $lastMtime = $current;
    }
    sleep(1);
}

SplFileInfo 物件導向介面(PHP 5.1+)

getMTime(); // filemtime
echo $info->getCTime(); // filectime
echo $info->getATime(); // fileatime
echo $info->getSize();  // 檔案大小

結語

理解 mtime(內容)、ctime(狀態)、atime(存取)三者語意差異,配合 clearstatcache() 取得即時資訊。快取驗證用 mtime,權限/移動監控用 ctime,存取分析用 atime(注意檔案系統掛載選項影響)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved