2009-08-10 7 views
0

Je rencontre quelques problèmes avec ob_* fonction quand il fonctionne comme un cronjob:PHP ob_ * de 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))); 
?> 

Le cronjob est configuré comme suit: (passe toutes les minutes)

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

Dans ce cas, rien arriver, mais le cron a vraiment couru.

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

Des idées où j'ai fait une erreur?

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

Répondre

5

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

+0

Merci Swish! Le problème résidait dans les chemins d'accès aux fichiers. Utiliser les chemins absolus aide dans mon cas. Merci encore! – plamen