首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在查询运行时显示CLI上的指示符

在查询运行时显示CLI上的指示符
EN

Stack Overflow用户
提问于 2014-05-19 15:44:09
回答 1查看 57关注 0票数 2

我有一个通过CLI运行的PHP脚本,运行良好,但是它运行了几个长查询(2-5分钟),这将给您一些仍然在发生的事情的一些想法。在迭代结果时,我确实有一个函数正在运行以更新进度,但是当PHP等待查询返回时,就会保持沉默。

我不需要知道查询什么时候会完成,但是在CLI上显示它正在做什么将是一个巨大的收获(绑定...或其他什么)。有可能吗?

EN

回答 1

Stack Overflow用户

发布于 2014-05-19 15:54:22

我发现使用回车返回没有新行的\r是非常有帮助的。它们将输出重置为行的开头,但不向下移动,允许您覆盖当前文本。

请注意,您将需要把这一行的完整长度,否则以前的字符仍将停留。例如:

代码语言:javascript
复制
$iteration = 0;
while (/* wait condition */) {
    printf("Process still running%-5s\r", str_repeat('.', $iteration % 5));
    sleep(1);
    $iteration++;
}
echo "\n";
echo "Task completed!";

如果您使用for循环进行处理,这样的操作会更有用:

代码语言:javascript
复制
// Display progress every X iterations
$update_interval = 1000000;

for ($i = 0; $i < $massive_number; $i++) {
    // Do processing

    if ($i % $update_interval == 0) {
        printf("Progress: %.2f%%\r", (100 * $i / $massive_number));
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23741928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档