Frage
Ich erlebe einige Probleme mit ob_*
Funktion, wenn es als cronjob läuft:
<?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)));
?>
Die Cronjobs ist Setup wie folgt aus: (läuft jede Minute)
* * * * * /usr/bin/php /path/to/cron.php > /dev/null
In diesem Fall nichts passieren, aber die cron lief wirklich.
Wenn ich nenne dies (/usr/bin/php /path/to/cron.php
) von der Kommandozeile alles wie erwartet funktioniert.
Irgendwelche Ideen, wo ich einen Fehler gemacht?
Danke für die Hilfe im Voraus!
Lösung
Sie müssen wahrscheinlich einen absoluten Pfad auf ‚somefile.php‘ verwenden. Es wird wahrscheinlich in der Entsenderichtlinie von cron erstellt zu werden. Oder Sie könnten am Anfang des Skripts von der cron-Anweisung eine Chdir tun.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow