我在命令行上运行了一个php(v.7.1.16)脚本:
$ct = 1;
foreach($sort_this as $cur_site_id => $dx){
$cur_location = $locations[$cur_site_id]['location'];
$msg = "\033[A\33[2K\r" . 'getting data for %25s (' . $cur_site_id . ') store: %7s %01.2f' . "\n";
echo printf($msg, $cur_location, ($ct . ' / ' . count($sort_this)), number_format((($ct / count($sort_this)) * 100), 2));
$ct++;
}
此循环运行大约40次迭代。 printf语句适用于1个小问题。在获取数据"之后的行上我看到一个数字从7x-7y开始增加(有时它从71开始,有时在77开始等)。我无法弄清楚导致这个数字打印的原因。因此,当循环开始时,我在屏幕上看到类似的内容:
getting data for DENVER (531) store: 42 / 42 0.00
77
当它完成这样的事情时:
getting data for SEATTLE (784) store: 42 / 42 100.00
79
我找到了如何打印到同一行并清除数据:
Erase the current printed console line
有没有办法阻止7x代码显示?还有,他们是什么?