Filemtime / cachetime我哪里错了?

时间:2010-07-10 11:15:56

标签: php image scripting filemtime

我要做的是检查图像的年龄,如果它超过60分钟然后运行另一个php页面来获取图像,否则如果不到60分钟就不做任何事情....

脚本没有打开第二页(radartest.php)并运行它来更新图像,所以需要一个命令告诉它作为脚本运行。

<?php
$imagename='./radar/auck0.png';
$cachetime = 3600;
    //Start the caching of the images........
    if (file_exists($imagename) and filemtime($imagename) + $cachetime > time()) {
          echo("radartest.php");
        } else {
  null; //do nothing
}
?>

4 个答案:

答案 0 :(得分:5)

filemtime返回的结果已缓存。

这只是猜测,但如果您过于频繁地使用这段代码,则可能必须使用clearstatcache函数:http://php.net/manual/en/function.clearstatcache.php

答案 1 :(得分:1)

您使用的echo('radartest.php');也不应该是include('radartest.php');

<?php
$imagename='./radar/auck0.png';
$cachetime = 3600;
    //Start the caching of the images........
    if (file_exists($imagename) && (filemtime($imagename) + $cachetime) > time()) {
          include ("radartest.php");
        } else {
  null; //do nothing
}

&GT;

答案 2 :(得分:0)

不确定它是否可能是运营商优先级。你使用的是“和”,它的优先级低于&amp;&amp; 尝试将表达式括起来强制优先:

if ((file_exists($imagename)) && ((filemtime($imagename) + $cachetime) > time())) {

答案 3 :(得分:0)

似乎运作良好....

<?php
$cache_file = './radar/auck0.png';
$cache_life = '3600'; //caching time, in seconds
$filemtime = @filemtime($cache_file);  // returns FALSE if file does not exist
if (!$filemtime or (time() - $filemtime >= $cache_life)){
          include("wxrain.php");
        } else {
        null; //do nothing
}
?>