更新命令行输出,即进度

我希望能够在命令行上的简单PHP脚本中显示进度表。而不是看到

Progress: 0%

Progress: 1%

etc...

我只想更改数字,并替换以前的数字,就像git clone一样Resolving deltas: 100% (8522/8522), done.

在搜索时,我在Perl中发现了相同的问题,这很完美,但是在PHP中找不到。可能吗?如果没有,我将求助于C。

谢谢

回答:

这可以使用 来完成- 列表请参见此处。

在PHP中,将在该页面上"\033"指示时使用ESC

在您的情况下,您可以使用以下方法:

echo "Progress :      ";  // 5 characters of padding at the end

for ($i=0 ; $i<=100 ; $i++) {

echo "\033[5D"; // Move 5 characters backward

echo str_pad($i, 3, ' ', STR_PAD_LEFT) . " %"; // Output is always 5 characters long

sleep(1); // wait for a while, so we see the animation

}

我简化了一点,确保我总是有5个额外的字符,并始终显示相同数量的数据,以始终向后移动相同数量的字符…

但是,当然,如果需要的话,您应该能够做的更加复杂;-)

还有许多其他有趣的转义序列:例如,颜色可以大大增强您的输出;-)

以上是 更新命令行输出,即进度 的全部内容, 来源链接: utcz.com/qa/414869.html

回到顶部