如何在命令行中制作计时器动画?

时间:2012-09-28 20:57:35

标签: php animation command-line timer

这有点傻,但我之前想做的事情却永远无法理解。我有一个从命令行运行的PHP脚本。我想要一个小计时器动画让用户知道脚本仍然在运行。这就是我所拥有的:

while (1 == 1) {
   echo '—';
   usleep(100000);
   echo '\';
   usleep(100000);
   echo '|';
   usleep(100000);
   echo '/';
}

但是如何让每个回显替换之前的角色?

3 个答案:

答案 0 :(得分:1)

试试php ncurses扩展程序:

http://php.net/manual/en/ref.ncurses.php

答案 1 :(得分:1)

您需要在每个字符前打印退格键,例如: -

echo '-';
usleep(100000);
echo "\b/";

请注意,您必须在此处使用双引号,否则转义序列将无效。

我相信你可以解决剩下的问题:)

如果“\ b”不起作用,请尝试: -

echo chr(8) . '/';

答案 2 :(得分:1)

您可以使用

echo "yourCharacter1\r";
usleep(100000);
echo "yourCharacter1\r";

echo "\ryourCharacter1\r";
usleep(100000);
echo "\ryourCharacter2\r";

\r将光标发送回同一行的位置0。

你也可以尝试(在网上找到)

system("clear"); // before you echo new characters

passthru('clear'); // before you echo new characters