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!

War es hilfreich?

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
scroll top