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!
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