flush () ¿No muestra la salida en PHP?

Tengo este código:

set_time_limit(0); header("Cache-Control: no-cache, must-revalidate"); header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); ob_flush(); flush(); $start = time(); $secs = time() - $start; while ($secs <= 300) { echo "this script has been running for $secs seconds.\n"; ob_flush(); flush(); sleep(1); } 

Lo que me gustaría hacer cuando veo esta página, es ver en tiempo real cuánto tiempo ha estado ejecutándose el script, así:

  • La secuencia de comandos ha estado funcionando durante 1 segundo.
  • La secuencia de comandos ha estado funcionando durante 2 segundos.
  • …………
  • Script ha estado ejecutando 300 segundos.

En cambio, lo que obtengo es una ventana en blanco con un signo de “carga” continua durante 5 minutos, y después de 5 minutos de repente me bombardean con una carga de estos mensajes que debería haber recibido 1 mensaje a la vez.

¿Alguien puede explicar lo que estoy haciendo mal?

ob_flush no está flush . ob_flush borra el buffer de objetos que se ha abierto. Como no tiene un búfer de objetos abierto, no se vacía nada.

Además, los navegadores web y el software de servidor web son conocidos por almacenar datos hasta que se puedan generar. Asegúrate de que GZIPing esté desactivado y de que estés usando un navegador sano.