2011-05-22 84 views
4

我的目标是向控制台打印更新进度百分比(在Linux和Windows中)。目前我只打印出每个10%的百分比,但我更希望它每1%更新一次,而不用百分比填满屏幕。如何从PHP中的控制台中删除文本?

是否可以删除您在PHP中写入控制台的文本?

+1

或者使用'print'17%\ r“;'。如果使用回车符'\ r'而不是换行符'\ n',光标将被放置在行的开始处,这允许下一个输出覆盖它。 – mario 2011-05-22 19:06:28

+0

马里奥:谢谢!这回答了我还没有问过的问题:-) – Hubro 2011-05-22 21:31:38

回答

3
echo chr(8); 

将打印退格字符。

+0

不错!这在Windows CMD中起作用。这会在Linux中工作吗? – Hubro 2011-05-22 19:07:54

+0

在Ubuntu Linux 10.04上试了一下,它工作。 – Oswald 2011-05-22 20:25:47

0

PEAR的Console_ProgressBar是这种用例是有用的。

要完全清除控制台,您可以使用:

if($_SERVER['SHELL']) { 
    print chr(27) . "[H" . chr(27) . "[2J"; 
} 

比保持跟踪多少字符退格更容易了不少。

相关问题