2009-08-10 58 views
0

我遇到一些問題ob_*功能時,它會作爲一個cronjob:PHP 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),那麼所有工作都按預期工作。

任何想法,我犯了一個錯誤?

感謝您的幫助!

回答

5

您可能需要在'somefile.php'上使用絕對路徑。它可能是在cron的pwd中創建的。或者你可以在cron語句腳本的開頭做一個chdir。

+0

感謝Swish! 問題是文件的路徑。在我的情況下使用絕對路徑有幫助。 再次感謝! – plamen 2009-08-10 17:59:01