我希望能够在命令行上用简单的 PHP 脚本显示进度表。而不是看到
Progress: 0%
Progress: 1%
etc...
我只想更改号码,并替换以前的号码,就像 git clone 所做的那样Resolving deltas: 100% (8522/8522), done.
.
在搜索这个时我发现了Perl 中回答了同样的问题 https://stackoverflow.com/questions/5009258/update-command-line-output,这很完美,但我在 PHP 中找不到它。是否可以?如果没有的话我就用C。
Thanks
Update:如果有人对 C++ 版本感兴趣,它在这里 https://stackoverflow.com/questions/60221/how-to-animate-the-command-line.
这可以使用以下方法完成ANSI 转义序列 -- see here http://ascii-table.com/ansi-escape-sequences.php获取列表。
在 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 个额外字符,并且始终显示相同数量的数据,始终向后移动相同数量的字符...
但是,当然,如果需要的话,您应该能够做更复杂的事情;-)
还有许多其他有趣的转义序列:例如,颜色可以大大增强您的输出;-)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)