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

Php 如何在命令行中制作计时器动画?,php,animation,command-line,timer,Php,Animation,Command Line,Timer,这有点傻,但有些事我以前一直想做,却一直想不出来。我有一个从命令行运行的PHP脚本。我想要一个小计时器动画,让用户知道脚本仍在运行。以下是我所拥有的: while (1 == 1) { echo '—'; usleep(100000); echo '\'; usleep(100000); echo '|'; usleep(100000); echo '/'; } 但是如何让每个echo替换前面的字符呢?试试php ncurses扩展: 尝试php nc

这有点傻,但有些事我以前一直想做,却一直想不出来。我有一个从命令行运行的PHP脚本。我想要一个小计时器动画,让用户知道脚本仍在运行。以下是我所拥有的:

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

但是如何让每个echo替换前面的字符呢?

试试php ncurses扩展:


尝试php ncurses扩展:


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

echo '-';
usleep(100000);
echo "\b/";
请注意,这里必须使用双引号,否则转义序列将不起作用

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

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

echo chr(8) . '/';

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

echo '-';
usleep(100000);
echo "\b/";
请注意,这里必须使用双引号,否则转义序列将不起作用

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

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

echo chr(8) . '/';
你可以用

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

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

你也可以在网上找到

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

你可以用

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

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

你也可以在网上找到

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


这似乎是最简单的解决方案-我在提出问题之前\b尝试过,但没有成功。cur8成功了!这似乎是最简单的解决方案-我在提出问题之前\b尝试过,但没有成功。cur8成功了!哇-这是一个很酷的扩展。我肯定会调查这件事,不过可能有点过火。哇,这是一个很酷的扩展。我肯定会调查这件事,不过可能有点过火了。