1

我知道主题的标题不清楚,但我会解释那个标题的意图。

首先
,我有一个包含一些字段的表单,并提交按钮。该表单将向另一个页面发出请求,upgrade2.php例如:

<form action="upgrade2.php" method="post">
  <input ......>
  <input ......>
  <input type="submit" name="open_upgrade2" value="ok" />
</form>

现在,该页面upgrade2.php不仅具有如下任务:

<?php
  task 1
  task 2
  task 3
?>

我想要的是在每个任务打印消息结束后,例如:

<?php
  task 1
  echo task 1 finished
  task 2
  echo task 2 finished
  task 3
  echo task 3 finished
?>

我尝试使用sleep,ob_flushflush函数来停止执行一段时间以打印消息然后继续执行,但不幸的是,脚本必须同时执行所有任务然后告诉我结果,但这不是我想要的。

我想在每项任务结束后打印消息。

4

2 回答 2

0

你必须做一些事情:

1)关闭ob_caching(或在每个任务/输出后添加ob_flush)

2)在每个任务/输出后使用刷新或停用缓冲区

3) 确保网络服务器在脚本完成之前不会缓存/等待/缓冲。这取决于模块/cgi/webserver。我想这是你的问题。

尝试先在 cli 上编程并检查输出。然后通过网络服务器运行它。您正在使用哪个网络服务器以及它如何使用/调用/执行 php?

于 2013-01-22T14:33:49.383 回答
0

不久前,我做了类似的事情,但使用了一些工作来进行显示。

我没有依赖 php 刷新功能,而是使用 AJAX 之类的调用来检索存储在 memcache 中的状态。

我为 ajax 请求创建了一个文件,该文件将简单地返回当前登录用户的 memcache 值,这是一个包含任务的数组,以及它们的完成状态(真或假)。并且根据该结果,javascript 会改变 HTML。

对于流程脚本,它只是在每次任务完成时编辑 memcache 值。

这似乎需要做很多工作,但它可以在一小时内很好地实现,并且您可以更好地控制输出的 HTML。

于 2013-01-22T14:50:43.340 回答