$filePath = '/path/to/file.txt'; $lastAccessed = fileatime($filePath); echo "該文件的最后訪問時間為:" . date('Y-m-d H:i:s', $lastAccessed);
這段代碼將返回一個格式化后的日期和時間,例如“2018-03-01 14:45:23”。這時我們知道了該文件最后被訪問的時間,這在某些情況下是非常有用的。例如,如果你想知道一個文件是否已經被讀取過或者在什么時候被瀏覽器緩存,fileatime()函數非常適合這些場景。 fileatime()函數的另一個常見用途是檢查文件是否被修改。與最后訪問時間戳不同,文件的最后修改時間戳可以使用filemtime()函數進行檢索。讓我們來看一下這兩個函數之間的區別:
$filePath = '/path/to/file.txt'; $lastAccessed = fileatime($filePath); $lastModified = filemtime($filePath); echo "該文件的最后訪問時間為:" . date('Y-m-d H:i:s', $lastAccessed) . "
"; echo "該文件的最后修改時間為:" . date('Y-m-d H:i:s', $lastModified);
這個例子將輸出兩行:一行顯示該文件的最后訪問時間,另一行顯示該文件的最后修改時間。這兩個時間戳在使用范圍上略有不同,但在某些情況下,你可能需要同時檢查它們。 最后,我們來看一下如何在實際應用中使用fileatime()函數。假設你正在構建一個博客,并想要記錄一些關于博客文章是否被閱讀過的信息。你可以編寫代碼將相關的文件路徑存儲在數據庫中,并在博客文章頁面上檢查這些文件的最后訪問時間戳。這將允許你實現類似于“最近閱讀”的功能,其中最近閱讀文章列表是根據文件的最后訪問時間戳排序的。
$articles = [ // 這些文章路徑是存儲在數據庫中的 '/path/to/article1.html', '/path/to/article2.html', '/path/to/article3.html', ]; $recentlyRead = []; foreach ($articles as $article) { $lastAccessed = fileatime($article); if ($lastAccessed >= strtotime('-24 hours')) { // 最近24小時內訪問的文章 $recentlyRead[] = $article; } } if (!empty($recentlyRead)) { echo "最近閱讀:"; foreach ($recentlyRead as $article) { echo "" . basename($article) . ", "; } }
上述代碼將檢查每篇文章的最后訪問時間戳,并如果它們在最近的24小時內被訪問過,將該文章的路徑存儲在$recentlyRead數組中。最后,它會生成一個鏈接列表,其中包括最近閱讀的博客文章。 在本文中,我們介紹了如何使用PHP的fileatime()函數來檢索文件的最后訪問時間戳。我們還探討了一些實際應用,如如何跟蹤博客文章是否被閱讀過以及如何檢查文件是否被瀏覽器緩存。不管用途如何,這個函數都是一個很好的工具,可以用來向你的PHP應用程序中添加一些額外的功能和安全性。