Question

Je rencontre des problèmes avec la fonction ob_* quand il fonctionne comme une tâche cron:

<?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)));
?> 

Le cronjob est configuré comme ceci: (court toutes les minutes)

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

Dans ce cas, rien ne se produit mais le Cron a couru vraiment.

Si j'appelle cela (/usr/bin/php /path/to/cron.php) à partir de la ligne de commande que tout fonctionne comme prévu.

Toutes les idées où je fait une erreur?

Merci pour l'aide dès le départ!

Était-ce utile?

La solution

Vous avez probablement besoin d'utiliser un chemin absolu sur « somefile.php ». Il est probablement se créé dans le PWD de Cron. Ou vous pourriez faire un chdir au début du script de la déclaration de Cron.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top