Foros del Web » Programando para Internet » PHP »

Mensajes para ver el progreso del script

Estas en el tema de Mensajes para ver el progreso del script en el foro de PHP en Foros del Web. Hola tengo un script en php cuya ejecucion suele durar 1 hora mas o menos, tengo puesto mensajes de informacion segun se va ejecutando el ...
  #1 (permalink)  
Antiguo 13/03/2009, 11:39
 
Fecha de Ingreso: octubre-2008
Mensajes: 44
Antigüedad: 16 años, 1 mes
Puntos: 1
Mensajes para ver el progreso del script

Hola tengo un script en php cuya ejecucion suele durar 1 hora mas o menos, tengo puesto mensajes de informacion segun se va ejecutando el script y me los saca todo al final cuando finaliza.

¿como se puede ir informando de la situacion mientras se ejecuta dicho script?

Gracias Saludos
  #2 (permalink)  
Antiguo 13/03/2009, 11:46
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 16 años, 4 meses
Puntos: 416
Respuesta: Mensajes para ver el progreso del script

Con:
http://www.php.net/manual/es/ref.outcontrol.php

Echale una mirada a la funcion ob_start() y a flush()
  #3 (permalink)  
Antiguo 13/03/2009, 11:50
Avatar de lisandro Arg  
Fecha de Ingreso: octubre-2003
Ubicación: Cordoba, Argentina
Mensajes: 945
Antigüedad: 21 años, 1 mes
Puntos: 24
Respuesta: Mensajes para ver el progreso del script

Una hora? eso si es editar max_excecution_time
Yyyy no estarás usando ob_start() para guardar en búfer y producir la salida al terminar el script?.

Si no das mas datos es dficil saber que puede ser.
  #4 (permalink)  
Antiguo 13/03/2009, 11:58
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Mensajes para ver el progreso del script

este es un truco...

a mi me sirvió cuando cargaba una base datos linea por linea...

Código PHP:
<?php

// cadenas
$htm = <<<HTML
Cargando... %d%
HTML;

// javascript
$js = <<<JS
<script type="text/javascript"><!--
    document.body.innerHTML = '';
--></script>
JS;



// el proceso no debe ser un ciclo...
// pero si lo es, mucho mejor!

$c 256;

for  (
$i 0$i $c; ++$i)
{
 
// porcentaje
 
$inc round($i $c 100);
 
 if (
$inc !== $new)
 {
     
// viejo valor...
     
$new $inc;
     
     
     
// reemplazamos, no usamos sprintf por el %d%
     
$str str_replace('%d'$incstr_replace("'"''$htm));
     
     
// bingo!
     
echo $js $str;
     
     
// sleep es no es necesario...
     // ya que este es el tiempo real de la demora
     
sleep(1);
     
flush();
 }
}

espero te sirva, suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:39.