php命令行更改文本输出

php命令行更改文本输出,php,terminal,command-line-interface,onchange,Php,Terminal,Command Line Interface,Onchange,我想知道是否有可能更改特殊php cli基础应用程序的一些输出,以更改终端上的一些值,而不是新值。例如,这是cli应用程序 #!/usr/bin/env php <?php $percent = 0; for ($i = 0; $i <= 100; $i++) { echo $percent . "\n"; sleep(1); $percent++; } /** 0 1 ... */ #/usr/bin/env-php 使用\r而不是\n\r是回

我想知道是否有可能更改特殊php cli基础应用程序的一些输出,以更改终端上的一些值,而不是新值。例如,这是cli应用程序

#!/usr/bin/env php
<?php

$percent = 0;

for ($i = 0; $i <= 100; $i++) {

    echo $percent . "\n";

    sleep(1);

    $percent++;
}

/**
0
1
...
*/
#/usr/bin/env-php

使用
\r
而不是
\n
\r
是回车符,它将跳回行首而不换行

$percent = 0;
for ($i = 0; $i <= 100; $i++) {
    echo $percent . "\r";
    sleep(1);
    $percent++;
}
$percent=0;

对于($i=0;$i这实际上取决于您的终端(仿真器)类型,而不是所使用的语言。请尝试使用退格字符(0x08)来“擦除”当前内容,然后输出新内容。

类似的操作应该适合您的需要(在Linux(CentOS)计算机上测试和验证):


for($percent=0;$percent)这不取决于终端运行的操作系统吗?这是最新的解决方案。如果我有一个句子,我想改变句子中的很多变量,我必须用我的计算等来完成……这在Linux、Windows和MacOS上都能工作(刚刚测试了所有的句子)你的意思是
newline
而不是
new-one
?如果不是,请澄清你的意思。@Oldskool-new-one。别名
update
好的,那么我再问一次,新的是什么?我们在谈论什么新的实体?新的百分比?您的循环中有100个新百分比…@Oldskool这是一个显示用户百分比数的简单应用程序。因此,在本例中,我们必须在每次循环后更新它。哦,好的,现在我明白了。我更新了问题以更好地反映这一点。其他解决方案不可用?
for ($percent = 0; $percent <= 100; $percent++) {
    echo $percent;
    sleep(1);
    // Print one or more backspaces, erasing current character(s)
    echo str_repeat("\x08", strlen($percent));
}