I want output echo in browser (every time) before sleep function execute.
following code is not working
set_time_limit(0);
ob_implicit_flush(1);
ob_start();
echo "Start<Br>";
ob_flush();
for($i=0;$i<10;$i++){
$randSlp=rand(1,3);
//echo str_repeat(" ", 1024);
echo "Sleeping for ".$randSlp." second. ";
ob_flush();
sleep($randSlp);
}
ob_end_flush();
if uncomment str_repeat
function than in browser
First time :
Start
Sleeping for 1 second.
Sleeping for 3 second.
Second time : Sleeping for 2 second.
Sleeping for 2 second.
and continue...
is possible echo one by one without str_repeat() function, why output doesn't display every time.
Try following code and its work.
header( 'Content-type: text/html; charset=utf-8' );
header("Cache-Control: no-cache, must-revalidate");
header ("Pragma: no-cache");
set_time_limit(0);
ob_implicit_flush(1);
//apache_setenv('no-gzip', 1);
//ini_set('zlib.output_compression', 0);
//ini_set('implicit_flush', 1);
for ($i = 0; $i < 10; $i++) {
$randSlp=rand(1,3);
echo "Sleeping for ".$randSlp." second. ";;
sleep(1);
if(ob_get_level()>0)
ob_end_flush();
}