在PHP中寻求STDOUT

ins*_*tor 8 php stdout command-line-interface

我有一个在CLI中运行的php脚本,我想显示当前的百分比进度,所以我想知道是否可以更新STDOUT以显示新的百分比.

当我使用rewind()或fseek()时,它只会抛出一条错误消息.

edo*_*ian 8

看到这段代码:

<?php
echo "1";
echo chr(8);
echo "2";
Run Code Online (Sandbox Code Playgroud)

输出只有2,因为"chr(8)"是"退格"的字符.

因此,只需打印您需要返回的字符数量并打印新的百分比.

打印"\ r"在Linux和Windows上也能正常工作,但不会在Mac上剪切

工作范例:

echo "Done: ";
$string = "";
for($i = 0; $i < 100; ++$i) {
    echo str_repeat(chr(8), strlen($string));
    $string = $i."%";
    echo $string;
    sleep(1);
}
Run Code Online (Sandbox Code Playgroud)