2012-09-28 70 views
1

這是一個有點傻,但我以前想做的事情,永遠不能弄清楚。我有一個從命令行運行的PHP腳本。我想要一個小小的計時器動畫讓用戶知道腳本仍在運行。下面是我有:如何在命令行中製作計時器動畫?

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

但我如何獲得每個呼應取代面前的人物?

回答

1

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

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

請注意,您必須在這裏用雙引號或轉義序列將不起作用。

我敢肯定,你可以工作休息了:)

如果 「\ B」 不工作的嘗試: -

echo chr(8) . '/'; 
+0

這似乎是最簡單的解決方案 - 我在問這個問題之前試過'\ b',但沒有奏效。 'cur(8)'做了詭計! –

+0

哎呀 - 那是'chr(8)'...... –

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 
+0

謝謝!這看起來也是一個很好的方法。 –

+0

不客氣:-) –