如何在php cli中回显退格符?

10
2个回答

12

双引号字符串中,没有被识别为转义序列的\b。您可以使用ASCII退格十六进制或八进制代码。

$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的语言进行转换变得更容易了... - recursion.ninja

8

退格字符对应的ASCII字符码是8,因此您可以使用PHP的char()函数输出它。

例如,如果您执行以下操作:

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

生成的输出结果如下:
Hello, world

1
我想我应该澄清一下,这只在命令行上下文中非常有用。如果你只是想向某人显示修改后的字符串,最好使用普通的字符串函数(例如 substr() 或类似的函数)来修改它。 - Liv

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接