2

私がやろうとしているのは、画像の年齢を確認することです.60分以上経過している場合は、別のphpページを実行して画像を取得します.60分未満の場合は何もしません....

スクリプトは 2 番目のページ (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');か?

すなわち。

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

うまくいきそうです……。

<?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 に答える
0

演算子の優先順位であるかどうかはわかりません。&& よりも優先順位の低い「and」を使用しています

if ((file_exists($imagename)) && ((filemtime($imagename) + $cachetime) > time())) {
于 2010-07-10T11:40:39.607 に答える