Filemtime / cachetime, где я иду не так? - PullRequest
2 голосов
/ 10 июля 2010

То, что я пытаюсь сделать, это проверить возраст изображения, если оно старше 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 ]

5 голосов
/ 06 сентября 2012

Результат, возвращаемый filemtime, кэшируется.

Это только предположение, но если вы используете этот фрагмент кода слишком часто, вам, возможно, придется использовать функцию clearstatcache: http://php.net/manual/en/function.clearstatcache.php

1 голос
/ 10 июля 2010

Также вы используете 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
}

?>

0 голосов
/ 10 июля 2010

Кажется, работает хорошо ....

<?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
}
?>
0 голосов
/ 10 июля 2010

Не уверен, что это может быть приоритет оператора. Вы используете "и", который имеет более низкий приоритет, чем && Попробуйте заключить в скобки свои выражения, чтобы установить приоритет:

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