2009-08-10 23 views
0

ich einige Probleme mit ob_* Funktion erleben, wenn es als cronjob läuft:PHP ob_ * von 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))); 
?> 

Der Cronjob ist Setup wie folgt aus: (läuft jede Minute)

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

In diesem Fall nichts passieren, aber Der Cron rannte wirklich.

Wenn ich dies (/usr/bin/php /path/to/cron.php) über die Befehlszeile aufrufen, funktioniert alles wie erwartet.

Irgendwelche Ideen, wo ich einen Fehler gemacht habe?

Danke für die Hilfe im Voraus!

Antwort

5

Sie müssen wahrscheinlich einen absoluten Pfad für 'somefile.php' verwenden. Es wird wahrscheinlich in der Pwd von Cron erstellt. Oder Sie könnten ein chdir am Anfang des Skripts von in der Cron-Anweisung tun.

+0

Danke Swish! Das Problem waren die Pfade zu den Dateien. Die Verwendung der absoluten Pfade hilft in meinem Fall. Danke nochmal! – plamen