当它作为cronjob运行时,我遇到了 ob_*
函数的一些问题:
<?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
),一切都按预期工作 .
我犯了什么错误的想法?
感谢您的帮助!
1 回答
您可能需要在'somefile.php'上使用绝对路径 . 它可能是在cron的pwd中创建的 . 或者你可以在cron语句的脚本开头做一个chdir .