如何像composer/curl/wget那样在cmd中使用php取得进展

如何像composer/curl/wget那样在cmd中使用php取得进展,php,cmd,command-line-interface,Php,Cmd,Command Line Interface,我有这样的php脚本: echo 'Loading...'.PHP_EOL; if($download_size > 0) { echo round($downloaded / $download_size * 100, 2) .'%'. PHP_EOL; } 本报税表 Loading ... 0% 0% 0% 0% 0% 0% 0% 0% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.0

我有这样的php脚本:

echo 'Loading...'.PHP_EOL;
if($download_size > 0)
        {
            echo round($downloaded / $download_size  * 100, 2) .'%'. PHP_EOL;
        }
本报税表

Loading ...
0%
0%
0%
0%
0%
0%
0%
0%
0.01%
0.01%
0.01%
0.01%
0.01%
0.01%
0.01%
0.01%
0.01%
0.01%
0.01%
0.01%
0.01%
0.01%
0.01%
0.01%
0.01%
--snippet--
当我们使用compoeser时,下载进度如下

githubUser/githubChannel 75%

wget/curl/apt get将是这样的

file.ext[==========>]40%

如何在cli模式下运行php

我尝试添加
系统('cls')在回显后但不工作

我想要的是这样

进度:0%

几秒钟后

进度:2%

几秒钟后

进度:6%

几秒钟后

进度:9%


谢谢。

您必须使用
\r
字符(回车)。当“写入”到终端时,指向要写入的下一个字符列的光标将移动到实际行的第一列

完整的工作示例如下所示:

<?php

$download_size = 100;
$downloaded = 0;

echo 'Loading...'.PHP_EOL;
while ($downloaded < $download_size) {
    if($download_size > 0) {
        echo round(($downloaded / $download_size) * 100, 2) . "%\r";
        sleep(1);
        $downloaded += 1;
    }
}

不使用换行符,而是使用回车:
echo-round($download/$download\u size*100,2)。“%\r”您遇到了什么错误?或者说,你现在被困在哪里?@gaganshera只是不知道该怎么办。但我有下面的正确答案。谢谢你的关注。我的快乐哇
\r
。我从来不知道这个角色。之前谢谢兄弟,你救了我一天