2011-07-11 102 views
1

我遇到問題。我有一個我只想每天更新的文件。所以我使用filemtime和過期時間戳並檢查對方......問題是我每次刷新頁面時都會收到echo語句。有任何想法嗎?文件失效檢查不起作用

$time_expire = time() + 24*60*60; // Expire Time (1 Day) 
// Check file change time 
if(filemtime($cache_filename) <= $time_expire) { 
    echo 'file is too old - refresh it'; 
} 

回答

3

只是想通過慢慢的邏輯:

  • 到期時間戳是未來的一天現在
  • 檢查修改時間戳是否低於或等於到期時間戳

是的,我認爲這將始終true。除非你的文件是From The Future™。
您的到期時間戳必須是過去中的一天

+1

啊,當然。真是個傻瓜! –

2

這是因爲你的filemtime是過去(至少應該是),你把它比作未來(time() + 24*60*60)。當然,它更少。

得到一些咖啡和重新思考你的編碼有什麼;-)

「小」 技巧:

if (time() - filemtime($cache_filename) >= 3600 * 24)) { /* file is too old, lets refresh it */ } 
+0

我到底這樣做$ time_expire = time() - 24 * 60 * 60; –

1

假設,如果你的filemtime 1000000和當前時間()是1000060你time_expire = 1000060 + 86400。所以,你的狀態永遠是真

相反,你需要檢查filemtime + 86400 <= time()