在php中处理时显示结果

在php中处理时显示结果,php,server,flush,php-ini,Php,Server,Flush,Php Ini,我正在本地主机上运行一个php爬网脚本 当用户填写表单并提交按钮时,它会将一些数据发布到php脚本(即script.php)。 它在我的本地主机上正常工作,当script.php运行时,它会显示一些关于爬行的信息 但当我将其上传到服务器时,处理时并没有显示script.php,只是在完成后才显示。 所以我在服务器上运行下面的代码,但也不工作(它在本地主机上正常工作) 我添加了所有flush方法,包括ob\u implicit\u flush(true)或ob_start(),但相同。 我认为

我正在本地主机上运行一个php爬网脚本

当用户填写表单并提交按钮时,它会将一些数据发布到php脚本(即script.php)。 它在我的本地主机上正常工作,当script.php运行时,它会显示一些关于爬行的信息

但当我将其上传到服务器时,处理时并没有显示script.php,只是在完成后才显示。 所以我在服务器上运行下面的代码,但也不工作(它在本地主机上正常工作)


我添加了所有flush方法,包括
ob\u implicit\u flush(true)
ob_start()
,但相同。 我认为服务器上有问题,但无法准确指示。
谁能帮我?

正如人们在评论中所说,http页面希望得到全面的回应


获取更新流的方法是让PHP在完成过程中的各个阶段时更新数据库或文件,然后在单独的http页面上直接查询更新后的数据库(通过另一个PHP脚本)或文件。

http不支持部分响应。Web服务器必须始终获取整个输出并将其作为一个整体返回给客户端。使其异步工作需要额外调用web服务器以获取更新。这是否回答了您的问题@Patrick Q根据我的经验,大多数web浏览器在得到完全响应之前不会开始渲染。因此,即使您强制web服务器返回部分数据,web浏览器仍将等待其余数据。但是,如果另一端有web浏览器以外的其他内容,则可以使用此功能。@S3Mi“这是否回答了您的问题?”是将问题标记为重复问题时创建的新自动注释文本。我绝对不喜欢这种改变,但那是另一种讨论。这个问题与那个问题几乎是重复的,不管OP想要做什么实际上是否可以实现(链接问题中的答案指出了它的局限性/相对不可能性)[link]这是这个代码的url,它在另一台服务器上正常工作。是因为错误的服务器设置吗?好的,听起来不错,但这里我只想问为什么即使是简单的脚本(每秒打印一次数字)也不能在服务器上工作。我把代码放到另一台服务器上,它工作正常,但不仅仅是这台服务器。为什么?
<?php
header( 'Content-type: text/html; charset=utf-8' );
echo 'Begin ...<br />';
for( $i = 0 ; $i < 10 ; $i++ )
{
    echo $i . '<br />';
    flush();
    ob_flush();
    sleep(1);
}
echo 'End ...<br />';
?>