PHP ob_ * desde tarea programada?
Pregunta
Estoy experimentando algunos problemas con la función ob_*
cuando se ejecuta como una tarea programada:
<?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)));
?>
La tarea programada se configura como esto: (se ejecuta cada minuto)
* * * * * /usr/bin/php /path/to/cron.php > /dev/null
En este caso, no pasa nada, pero el cron realmente funcionó.
Si llamo a esto (/usr/bin/php /path/to/cron.php
) desde la línea de comandos que todo funciona como se esperaba.
Todas las ideas, donde he cometido un error?
Gracias por la ayuda por adelantado!
Solución
Es probable que tenga que utilizar una ruta absoluta en 'somefile.php'. Probablemente se está creada en el pwd de cron. O usted podría hacer un chdir al comienzo de la secuencia de comandos en el pliego de cron.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow