0

ob_*当它作为 cronjob 运行时,我遇到了一些功能问题:

<?php
function getLayout($file, $extract=array()) {

    if (is_file($file)) {

        if (count($extract) > 0) {
            extract($extract);
        }

        ob_start();
        include $file;
        $contents = ob_get_contents();
        ob_end_clean();

        return $contents;
    }

    return false;
}

file_put_contents('somecachefile.html', getLayout('somefile.php', array('var1'=>$val1, 'var2'=>$val2)));
?> 

cronjob 的设置如下:(每分钟运行一次)

* * * * * /usr/bin/php /path/to/cron.php > /dev/null

在这种情况下,什么都没有发生,但 cron 真的运行了。

/usr/bin/php /path/to/cron.php如果我从命令行调用这个 ( ),一切都会按预期工作。

我犯了错误的任何想法?

感谢您的帮助!

4

1 回答 1

5

您可能需要在“somefile.php”上使用绝对路径。它可能是在 cron 的密码中创建的。或者您可以在 cron 语句的脚本开头执行 chdir。

于 2009-08-10T17:52:33.860 回答