【发布时间】:2017-04-21 19:31:55
【问题描述】:
是否可以使用 ob_start() 和 flush() 在屏幕上打印文本并最终清除该文本?
现在我有类似的东西:
<?php
ob_start();
ob_end_flush(); flush(); ob_flush();
for($i = 0; $i<100; $i++)
{
echo $i.'<br>';
flush();
ob_flush();
}
ob_end_flush();
?>
当我执行这段代码时,我会得到类似的东西:
0
1
2
3
4
5
6
7
8
...
但我想要回显当前键并清理它们:
0
... (clean "0")
1
... (clean "1")
2
... (clean "2")
最后我希望屏幕上只有一个数字。用PHP可以吗?
谢谢。
【问题讨论】:
-
您能详细说明您想要达到的目标吗?目前,对我来说,您似乎完全滥用了
ob_*函数。但也可能只是我,完全误解了你想要做的事情。不过我会说,您可以将回调传递给ob_start( $callback );。不确定这是否是您要找的。span> -
@DecentDabbler 我只想在屏幕上始终只有一个(当前)for循环键。因此,当循环在 34 键上时,屏幕上我希望只有“34”,当循环在 56 键上时,屏幕上我希望只有“56”等。仅此而已。
-
这是用于 CLI(命令行界面)吗?您是否尝试在命令行上设置一个计时器并在每次计时器更新时清除该行?因为如果它是用于网络的,您无法清理已发送的内容。网络不是这样工作的。
-
@DecentDabbler 是的。
-
好的,但是您代码中的
<br>似乎建议您要输出 HTML。您确定它是为command line 准备的,而不是通过网络服务器(如 Apache)提供服务吗?