我遇到一些问题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)预期。

在这里我犯了一个错误任何想法?

感谢您的帮助先期!

有帮助吗?

解决方案

您可能需要在“somefile.php”使用绝对路径。这可能是越来越在cron的PWD创建。或者你也可以在在cron语句的脚本的开头做一个CHDIR。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top