文件到期检查不起作用

时间:2011-07-11 09:22:41

标签: php

我遇到了问题。我有一个文件,我只想每天更新。所以我正在使用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 个答案:

答案 0 :(得分:3)

慢慢思考逻辑:

  • 到期时间戳是 now
  • 将来的一天
  • 检查修改时间戳是否低于或等于到期时间戳

是的,我认为总是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 */ }

答案 2 :(得分:1)

假设你的filemtime是1000000且当前时间()是1000060你的time_expire = 1000060 + 86400.所以你的情况总是如此

相反,您需要检查filemtime + 86400 <= time()