如何从php cli回显退格?
这个问题: 解释如何作为bash脚本进行倒计时。我想做同样的事情,但我需要用PHP来做。有没有办法回应退格 e、 g如何从php cli回显退格?,php,bash,command-line-interface,Php,Bash,Command Line Interface,这个问题: 解释如何作为bash脚本进行倒计时。我想做同样的事情,但我需要用PHP来做。有没有办法回应退格 e、 g 但是,echo“\b”不起任何作用。退格字符对应于ASCII字符代码8,因此可以使用PHP函数将其输出 例如,如果你做了以下事情: echo 'Hello, world!' . chr(8); 结果是: Hello, world 从中,没有被识别为转义序列的\b。您可以使用退格十六进制或八进制代码 $bs = "\x08"; echo "Counting down 60";
但是,echo“\b”不起任何作用。退格字符对应于ASCII字符代码8,因此可以使用PHP函数将其输出 例如,如果你做了以下事情:
echo 'Hello, world!' . chr(8);
结果是:
Hello, world
从中,没有被识别为转义序列的\b
。您可以使用退格十六进制或八进制代码
$bs = "\x08";
echo "Counting down 60";
sleep(1);
echo "$bs$bs59";
sleep(1);
echo "$bs$bs58";
或者在一个循环中一直到零
$bs = "\x08";
for ($i = 59; $i >= 0; --$i) {
sleep(1);
printf("$bs$bs%2d", $i);
}
您还必须省略换行符
\n
。我想我应该澄清一下,只有在命令行上下文中工作时,这才真正有用。如果你只是想向某人显示一个修改过的字符串,你最好还是用一个普通的字符串函数来修改它,比如,或者类似的东西。真的吗?PHP对垂直选项卡\v
有转义序列,但没有退格\b
?有了类似的转义序列,从任何C
-like进行转换就更容易了。。。
$bs = "\x08";
for ($i = 59; $i >= 0; --$i) {
sleep(1);
printf("$bs$bs%2d", $i);
}