簡體   English   中英

filectime 與 filemtime 的文件修改時間?

[英]filectime vs filemtime for file modification time?

我想,以確保某些圖像不會被緩存時,他們正在修改,但是這將是更適合這個filectimefilemtime

我真的看不出與 php 手冊有多大區別? 要么更快?

<img src="/images/123.png?<?=md5(@filectime("/images/123.png"))?>" />
<img src="/images/123.png?<?=md5(@filemtime("/images/123.png"))?>" />

還有這樣的函數不會在文件錯誤時發出e_warning嗎?

理想情況下,我不想只提供問號<img src="/images/123.png?" /> <img src="/images/123.png?" />

當您處理圖像緩存時, filectime是不合適的 - 它標志着最后一次:

當來自 inode 的權限、所有者、組或其他元數據更新時

您想知道圖像文件內容是否已更改 - 是否已調整大小、裁剪或完全替換。

因此, filemtime更適合您的應用:

當文件的數據塊被寫入時,即文件內容被改變的時間

如果你不想要? 要始終出現, filemtimefilemtime設置為變量並對其進行測試:

$filemtime = @filemtime("/images/123.png");

<img src="/images/123.png<?= $filemtime ? '?' . $filemtime : ''?>" />

更好的是,在使用filemtime之前使用file_exists()測試文件是否存在。

注意:在大多數 Unix 文件系統中,當文件的 inode 數據發生變化時,就認為文件發生了變化; 也就是說,當來自 inode 的權限、所有者、組或其他元數據更新時。 另請參見 filemtime()(當您想在網頁上創建“上次修改”頁腳時要使用它)和 fileatime()。

手冊

所以你想使用filemtime

filemtime:表示數據或內容發生變化或修改的時間,不包括所有權或所有者組等元數據。

filectime:表示文件的元數據或inode數據發生改變的時間,例如權限、所有權或組的改變。

所以filemtime是解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM