我有一个通过CLI运行的PHP脚本,运行良好,但是它运行了几个长查询(2-5分钟),这将给您一些仍然在发生的事情的一些想法。在迭代结果时,我确实有一个函数正在运行以更新进度,但是当PHP等待查询返回时,就会保持沉默。
我不需要知道查询什么时候会完成,但是在CLI上显示它正在做什么将是一个巨大的收获(绑定...或其他什么)。有可能吗?
发布于 2014-05-19 15:54:22
我发现使用回车返回没有新行的\r是非常有帮助的。它们将输出重置为行的开头,但不向下移动,允许您覆盖当前文本。
请注意,您将需要把这一行的完整长度,否则以前的字符仍将停留。例如:
$iteration = 0;
while (/* wait condition */) {
printf("Process still running%-5s\r", str_repeat('.', $iteration % 5));
sleep(1);
$iteration++;
}
echo "\n";
echo "Task completed!";如果您使用for循环进行处理,这样的操作会更有用:
// 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));
}
}https://stackoverflow.com/questions/23741928
复制相似问题