这是我的代码:
<?php
for($j = 0; $j < 10; $j++){
print((string)$j . " ");
sleep(1);
}
?>
代码等待打印
0 1 2 3 4 5 6 7 8 9
直到经过10秒后,而不是每秒打印一次。
为什么会这样,我该如何解决?
答案 0 :(得分:1)
服务器通常缓冲服务器端脚本的输出,直到它足够输出尝试类似这样的东西。设置输出缓冲关闭和手动刷新缓冲区的组合。注意implcit flush line和flush和ob_flush行。
<?php
@ini_set("output_buffering", "Off");
@ini_set('implicit_flush', 1);
@ini_set('zlib.output_compression', 0);
@ini_set('max_execution_time',1200);
header( 'Content-type: text/html; charset=utf-8' );
echo "Testing time out in seconds\n";
for ($i = 0; $i < 10; $i++) {
echo $i." -- ";
if(sleep(1)!=0)
{
echo "sleep failed script terminating";
break;
}
flush();
ob_flush();
}
?>