向客户报告进度的PHP脚本

Rob*_*cks 2 php dynamic-data

我正在编写一个执行大量重复工作的PHP脚本,当客户端执行它时,我希望它在完成任务时以某种方式动态地发回HTML.(没有AJAX?)如何做到这一点?

小智 7

您可以使用flush()来刷新输出缓冲区;

所以类似于:

taskOne();
echo 'Task one finished';
flush();
...
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.

  • 如果这是一个漫长的过程,请确保使用set_time_limit()给它时间来完成.如果用户离开的时间太长(但无论如何都需要完成),那么请使用ignore_user_abort(). (3认同)
  • 此外,请确保您没有使用zlib或gzip压缩,因为您无法将数据刷新到页面. (2认同)