这个问题:https://askubuntu.com/questions/16149/overwrite-previous-output-in-bash-instead-of-appending-it
说明如何使用bash脚本执行倒计时。我想做同样的事情,但我需要在PHP中做。是否有一种方法来回应退格?
。
echo "Counting down 60'n";
sleep(1);
echo "'b'b'b59'n";
sleep(1);
echo "'b'b'b58'n";
但是,echo "'b"不做任何事情
From Strings -双引号,没有'b
被识别为转义序列。您可以使用ASCII退格、十六进制或八进制代码
$bs = "'x08";
echo "Counting down 60";
sleep(1);
echo "$bs$bs59";
sleep(1);
echo "$bs$bs58";
或者在循环中一直到0
$bs = "'x08";
for ($i = 59; $i >= 0; --$i) {
sleep(1);
printf("$bs$bs%2d", $i);
}
必须省略换行符'n
退格字符对应ASCII字符码8,因此可以使用PHP的char()
函数输出。
交货。如果你这样做:
echo 'Hello, world!' . chr(8);
结果输出为:
Hello, world