Ben*_*ird 8 php bash command-line-interface
这个问题: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";
Run Code Online (Sandbox Code Playgroud)
但是,回声"\ b"没有做任何事情.
Ola*_*che 10
从字符串 - 双引号,没有被\b认为是一个转义序列.您可以使用ASCII退格十六进制或八进制代码
$bs = "\x08";
echo "Counting down 60";
sleep(1);
echo "$bs$bs59";
sleep(1);
echo "$bs$bs58";
Run Code Online (Sandbox Code Playgroud)
或者循环一直到零
$bs = "\x08";
for ($i = 59; $i >= 0; --$i) {
sleep(1);
printf("$bs$bs%2d", $i);
}
Run Code Online (Sandbox Code Playgroud)
您也必须省略换行符\n.
小智 6
退格字符对应于ASCII字符代码8,因此您可以使用PHP的char()函数输出它.
防爆.如果你做的事情如下:
echo 'Hello, world!' . chr(8);
Run Code Online (Sandbox Code Playgroud)
结果输出是:
Hello, world
Run Code Online (Sandbox Code Playgroud)