PHP刷新don';不起作用


PHP flush don't work

我试图让PHP刷新工作2个小时,我无法让它工作,在localhost中它可以工作,但当我在服务器上拖动它时,它停止了工作。代码是这样的:

<?php
  ob_implicit_flush(true);
  ob_end_flush();
  for ($i=0; $i<5; $i++) {
    echo $i.'<br>';
    sleep(1);
  }
?>

我尝试了很多其他版本,但我喜欢的所有版本都只在localhost上工作(像这样),但在我的服务器上不工作,我在哪里读到修改php.ini文件上的一些行是可以修复的,但我使用的是Aruba托管的windows域,所以我无法编辑php.ini,我该怎么办?

更新:我在其他两个免费托管服务上尝试了它,它对他们有效,只是我的主要托管服务有问题:它会是什么
更新:由于我发现很多脚本都使用ini_set,我试图检查它们设置的值,我不知道它们是否有用:
session.use_trans_sid 0 output_buffering 4096 zlib.output_compression Off

这是有效的,但仅在默认的apache环境中有效:

<?php
ini_set('output_buffering', 0);
ini_set('zlib.output_compression', 0);
if( !ob_get_level() ){ ob_start(); }
else { ob_end_clean(); ob_start(); }
for ($i = 0; $i < 10; $i++) {
  //For Nginx we have to reach minimum  buffer size, 
  //so if it is not enough increment output
  echo str_pad( $i . '<br>', 1024 + 10, ' ', STR_PAD_RIGHT ); 
  flush();
  ob_flush();
  sleep(1);
}

Nginx需要更多配置:

通常在/etc/nginx/nginix.conf 中

gzip off;
proxy_buffering off;
fastcgi_buffer_size 1k;       #set buffer to 1k
fastcgi_max_temp_file_size 0;
fastcgi_buffers 128 1k;       #set max buffer size to 1k + 128*1k

尝试

<?php
  ini_set('session.use_trans_sid', 0);
  ob_implicit_flush(true);
  ob_end_flush();
  for ($i=0; $i<5; $i++) {
    echo $i.'<br>';
    sleep(1);
  }
?>

或者检查:php implicit_flash命令无法正常工作