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!

¿Fue útil?

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
scroll top