1

我正在编写一个 PHP 脚本,它将在myfile.php.
我想显示一个进度条,它会像这样随时间变化:

[------]

[*-----]

[****--]

我不知道这是否是做这种事情的最佳实践,但我想用一个简单的来做echo,并且外壳中进度条的位置不变。

完成后,我想删除整个加载内容。

一般来说,我怎样才能改变我已经echo编辑过的东西?

4

2 回答 2

1

您需要使用的是 ANSI 转义序列。

StackOverflow 上的这个问题和答案涵盖了它,你应该能够根据你的需要调整它,看看:更新命令行输出,即进度

于 2013-04-13T06:08:07.233 回答
0

chr(8)是退格字符。通过一些数学运算,您可以打印足够多的数据以将光标移回栏的开头,并将新数据打印在您之前打印的位置之上。

只是不要在栏的末尾打印换行符。

问题在于:如果您对输出进行任何类型的文本捕获,它会将这些文本提取到捕获的文本中,但在控制台窗口中看起来会很好

于 2013-04-13T06:16:03.097 回答