2

我要做的是检查图像的年龄,如果它超过 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

4 回答 4

5

filemtime 返回的结果被缓存。

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

于 2012-09-06T07:45:40.947 回答
1

你也用echo('radartest.php');不应该include('radartest.php');吗?

IE。

<?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
}

?>

于 2010-07-10T12:03:14.023 回答
0

不确定它是否可能是运算符优先级。您正在使用“and”,它的优先级低于 && 尝试将表达式括起来以强制优先级:

if ((file_exists($imagename)) && ((filemtime($imagename) + $cachetime) > time())) {
于 2010-07-10T11:40:39.607 回答
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
}
?>
于 2010-07-10T19:27:25.687 回答