诸如此类的实用程序wget
可以将其下载百分比写入控制台并不断更新它而无需编写新行。这个功能叫什么,Symfony 的控制台组件可以实现吗?
问问题
733 次
2 回答
3
我使用 1ed 的答案来查看 Symfony 如何使用 2.2 中提供的进度助手来完成它。十六进制字符代码“\x08”(ANSI 退格字符)将删除单个字符。如果跟踪最后一行的长度,并使用 str_repeat,就可以达到预期的效果。
概念证明:
<?php
$lastLineSize = 0;
for ($i = 0; $i <= 50; $i++) {
echo str_repeat("\x08", $lastLineSize);
echo "Iteration {$i} of 50";
$lastLineSize = strlen("Iteration {$i} of 50");
usleep(100000);
}
echo " - Done\n";
输出:
[root@dev /home/myuser] > php test.php
Iteration 50 of 50 - Done
[root@dev /home/myuser] >
于 2012-11-18T23:33:35.423 回答