Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从php cli回显退格?_Php_Bash_Command Line Interface - Fatal编程技术网

如何从php cli回显退格?

如何从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";

这个问题:

解释如何作为bash脚本进行倒计时。我想做同样的事情,但我需要用PHP来做。有没有办法回应退格

e、 g


但是,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);
}