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