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のpwdで作成されています。または、cronステートメントののスクリプトの先頭でchdirを実行することもできます。

于 2009-08-10T17:52:33.860 に答える