Domanda
Ho riscontrato alcuni problemi con la funzione ob_*
quando viene eseguito come un 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)));
?>
Il cronjob è configurato in questo modo: (corre ogni minuto)
* * * * * /usr/bin/php /path/to/cron.php > /dev/null
In questo caso nulla accada, ma il cron davvero corse.
Se io chiamo questo (/usr/bin/php /path/to/cron.php
) dalla riga di comando che tutto funzioni come previsto.
Tutte le idee in cui ho fatto un errore?
Grazie per l'aiuto in anticipo!
Soluzione
Probabilmente È necessario utilizzare un percorso assoluto su 'somefile.php'. Probabilmente è sempre creato nella pwd di cron. Oppure si potrebbe fare un chdir all'inizio dello script del nell'istruzione cron.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow