我遇到了问题。我有一个文件,我只想每天更新。所以我正在使用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';
}
答案 0 :(得分: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 */ }
答案 2 :(得分:1)
假设你的filemtime是1000000且当前时间()是1000060你的time_expire = 1000060 + 86400.所以你的情况总是如此
相反,您需要检查filemtime + 86400 <= time()