我可以每隔一段时间读取一个外部文件吗?

时间:2011-06-22 23:25:58

标签: php cron

我正在编写一个脚本,它从外部服务器检查更新版本。我在config.php文件中使用此代码来检查最新版本。

$data = get_theme_data('http://externalhost.com/style.css');
$latest_version = $data['Version'];
define('LATEST_VERSION', $latest_version);

这很好,我可以获取最新版本(get_theme_data是WordPress函数),但问题是它将在我不想要的每一个负载上执行。我也不想只检查表单提交的时间。或者,我正在研究某种方法来缓存结果,或者每隔一小时检查版本?这样的事情可能吗?怎么样?

2 个答案:

答案 0 :(得分:1)

此类计划任务应设置为单独的cronat作业。您仍然可以用PHP编写所有内容,只需创建一个从命令行运行的脚本并进行更新。请查看“man crontab”以获取详细信息,和/或检查服务器正在运行的调度服务。

答案 1 :(得分:1)

在这里,让你轻松自如。将上次检查更新的时间存储在文件中。

function checkForUpdate() {
    $file = file_get_contents('./check.cfg', true);
    if ($file === "") {
        $fp = fopen('./check.cfg', 'w+');
        fwrite($fp, time() + 86400);
        fclose($fp);
    }
    if ((int)$file > time()) {
        echo "Do not updatE";
    } else {
        echo "Update";
        $fp = fopen('./check.cfg', 'w+');
        fwrite($fp, time() + 86400);
        fclose($fp);
    }
}

如果您愿意,显然可以使这更加安全/有效。

编辑:此功能每天都会检查一次更新。