PHP中的filetime()函數(shù)是用來(lái)獲取文件的最后修改時(shí)間的函數(shù),也就是文件的時(shí)間戳。該函數(shù)返回的時(shí)間戳是一個(gè)整數(shù)類型的值,并且代表的是UTC時(shí)間到某個(gè)時(shí)間點(diǎn)的秒數(shù),這個(gè)時(shí)間點(diǎn)的起始是1970年1月1日 0時(shí)0分0秒。
filetime()函數(shù)在實(shí)際應(yīng)用中非常常見(jiàn),例如我們需要對(duì)比一個(gè)文件是否修改過(guò),就可以借助該函數(shù)來(lái)獲取這個(gè)文件的時(shí)間戳,并與之前存儲(chǔ)的時(shí)間戳做對(duì)比來(lái)判斷該文件是否修過(guò)。
$file = "/path/to/file.txt"; $time1 = filemtime($file); // 這里可以操作文件 $time2 = filemtime($file); if ($time1 == $time2) { echo "文件未被修改過(guò)"; } else { echo "文件已被修改過(guò)"; }
除此之外,當(dāng)我們希望在輸出文件的詳細(xì)信息時(shí),我們也可以借助filetime()函數(shù)來(lái)獲取該文件的最后修改時(shí)間。下面是一個(gè)簡(jiǎn)單的代碼演示。
$file = "/path/to/file.txt"; $time = filemtime($file); $info = "文件名:" . basename($file) . "
"; $info .= "修改時(shí)間:" . date("Y-m-d H:i:s", $time) . "
"; $info .= "大?。? . filesize($file) . "字節(jié)
"; echo $info;
輸出結(jié)果類似如下:
文件名:file.txt 修改時(shí)間:2019-12-30 10:30:00 大?。?024字節(jié)
在開(kāi)發(fā)中,我們也可以通過(guò)比較文件的修改時(shí)間,來(lái)刪除過(guò)期的文件。例如我們將失效時(shí)間設(shè)置為1個(gè)月,那么我們可以通過(guò)下面代碼來(lái)清除掉過(guò)期的文件。
$dir = "/path/to/file_dir/"; $expire_time = time() - 3600*24*30; // 過(guò)期時(shí)間,1個(gè)月之前的時(shí)間 $files = scandir($dir); foreach ($files as $file) { if ($file == '.' || $file == '..') { continue; } $filepath = $dir . $file; $time = filemtime($filepath); if ($time< $expire_time) { unlink($filepath); echo "文件 " . $filepath . " 已成功刪除。
"; } }
當(dāng)然,filetime()函數(shù)的應(yīng)用不僅僅如此,只要我們需要獲取文件的最后修改時(shí)間,都可以通過(guò)該函數(shù)來(lái)輕松獲取。無(wú)論是在文件管理、日志分析、數(shù)據(jù)備份等領(lǐng)域都有著廣泛的應(yīng)用。