首页 > 解决方案 > 在 php 中处理时显示结果

问题描述

我在我的本地主机中运行一个 php 抓取脚本。

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

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

<?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 />';
?>

我添加了所有刷新方法,包括ob_implicit_flush(true);or ob_start(),但相同。我认为服务器有问题,但无法准确指出。谁能帮我?

标签: phpserverflushphp-ini

解决方案


正如人们在评论中所说的那样,http 页面期望得到完整的回应。

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


推荐阅读