简体   繁体   English

如何从php cli回显退格?

[英]How do I echo a backspace from php cli?

This question: https://askubuntu.com/questions/16149/overwrite-previous-output-in-bash-instead-of-appending-it 这个问题: https//askubuntu.com/questions/16149/overwrite-previous-output-in-bash-instead-of-appending-it

Explains how to do a countdown as a bash script. 解释如何将倒计时作为bash脚本。 I want to do the same thing, but I need to do it in PHP. 我想做同样的事情,但我需要用PHP来做。 Is there a way to echo a backspace? 有没有办法回应退格?

eg 例如

echo "Counting down 60\n";
sleep(1);
echo "\b\b\b59\n";
sleep(1);
echo "\b\b\b58\n";

But, echo "\\b" doesn't do anything. 但是,回声“\\ b”没有做任何事情。

From Strings - Double quoted , there is no \\b recognized as an escape sequence. 字符串 - 双引号 ,没有\\b被识别为转义序列。 You can use the ASCII backspace hex or octal code 您可以使用ASCII退格十六进制或八进制代码

$bs = "\x08";
echo "Counting down 60";
sleep(1);
echo "$bs$bs59";
sleep(1);
echo "$bs$bs58";

or in a loop all the way down to zero 或者循环一直到零

$bs = "\x08";
for ($i = 59; $i >= 0; --$i) {
    sleep(1);
    printf("$bs$bs%2d", $i);
}

You must omit the newline \\n as well. 您也必须省略换行符\\n

The backspace character corresponds to the ASCII character code 8, so you can output it using PHP's char() function. 退格符对应于ASCII字符代码8,因此您可以使用PHP的char()函数输出它。

Ex. 防爆。 if you do something like: 如果你做的事情如下:

echo 'Hello, world!' . chr(8);

The resulting output is: 结果输出是:

Hello, world

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM