如何在php脚本仍在运行时显示结果

如何在php脚本仍在运行时显示结果,php,Php,所以我试过了 但由于某些原因,它不起作用,因此我目前的情况如下: ob_start(); include "../../common.php"; set_time_limit (0); $start = (string) $_GET['start']; $end = (string) $_GET['end']; for($i = $start; strcmp($i, $end); $i = bcadd($i, 1)){ echo $i; ob_flush(); } ob_end_fl

所以我试过了

但由于某些原因,它不起作用,因此我目前的情况如下:

ob_start();
include "../../common.php";

set_time_limit (0);

$start = (string) $_GET['start'];
$end = (string) $_GET['end'];

for($i = $start; strcmp($i, $end); $i = bcadd($i, 1)){

echo $i;
ob_flush();

}

ob_end_flush(); 
更新代码

*请注意,这段代码还不起作用

set_time_limit(0);

$start = $_GET['start'];
$end = $_GET['end'];

for(;$start < $end;$start++){
$content = file_get_contents("[some internal page]");
echo $content;
usleep(10); 
flush();
}
设置时间限制(0);
$start=$_GET['start'];
$end=$_GET['end'];
对于(;$start<$end;$start++){
$content=file\u get\u contents(“[某些内部页面]”);
echo$内容;
usleep(10);
冲洗();
}

您通常需要同时调用
flush()
ob\u flush()
。见:

此外,您不能在客户端对浏览器的缓冲区执行任何操作。浏览器将根据需要尽可能长或小地缓冲数据。某些服务器可能也不支持刷新其缓冲区。

在ob_flush()之后;添加flush();这实际上会刷新写入缓冲区和输出缓冲区。ob_flush刷新写入缓冲区,flush()然后将其推出到客户端。通常至少。

尝试在调用
ob\u flush()
后添加对的调用。这仅在服务器配置为能够执行的情况下才有效,并且不能保证客户端能够明智地处理它,但这是您的最佳选择


我在这里遇到的一个关键点是,你已经配置了你绝对不能这样做,句号。zlib输出压缩过程是在执行任何代码之前启动的,在运行时无法由脚本使用
ini\u set()
等来控制。

我已经尝试了您所说的,但它不起作用。。。这是我的php.ini设置,可能是:???嘿,你的脚本工作了,但是当我将它与我自己的代码一起使用时,它停止工作了!!!:有什么事我可以私下和你谈谈吗?@ahoura我正要睡觉(现在是晚上11点),但我会在大约11小时后回来,所以如果你愿意,我会在那时聊天。我猜您的问题是您没有向浏览器发送足够的内容,以便它开始渲染。好的,请在您联机时通知我,以便我们可以完成此操作:)谢谢,我尝试了您所说的,但它不起作用。。。这是我的php.ini设置,可能是:???我试过你说的,但它不起作用。。。这是我的php.ini设置,可能是:???我看不到任何可能导致它的原因,但我不知道一切。。。尝试一个包含以下内容的脚本:
@ahoura,在您的服务器上发布一个测试脚本的链接。它的wecircled.com/lab/id/imgtest.php我将循环增加到100000,但它只在完成整个操作后才显示@阿胡拉,在我的浏览器上,它工作得很好。你的代码没有问题。您正在经历客户端缓冲,这不是您可以修复的。