我知道主题的标题不清楚,但我将解释该标题的用途。
首先
我有一个包含一些字段的表单,并提交按钮。
该表单会向另一个页面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_flush
和flush
函数来停止执行一段时间来打印消息然后继续执行,但不幸的是,脚本必须在同一个任务中执行时间然后告诉我结果,但这不是我想要的。
我希望在每项任务结束后打印消息。
答案 0 :(得分:0)
你必须做一些事情:
1)关闭ob_caching(或在每个任务/输出后添加ob_flush)
2)在每个任务/输出之后使用flush或停用缓冲区
3)确保在脚本完成之前,Web服务器不会缓存/等待/缓冲。 这取决于modul / cgi / webserver。我想这是你的问题。
尝试先在cli上编程并检查输出。 然后通过网络服务器运行它。 你正在使用哪个网络服务器以及如何使用/调用/执行php?
答案 1 :(得分:0)
不久前,我做了类似的事情,但是在显示方面做了一些工作。
我使用AJAX之类的调用来检索状态,而不是依赖于php刷新功能,该状态存储在memcache中。
我为ajax请求创建了一个文件,它只返回当前登录用户的memcache值,这是一个包含任务的数组,以及它们的完成状态(true或false)。 根据结果,javascript会改变HTML。
对于流程脚本,只需在每次任务完成时编辑memcache值。
这似乎是很多工作,但它可以在一小时内完成,并且您可以更好地控制输出的HTML。