[%'={$percentageDone}s>%-{$percetageLeft}s] 是什么意思?
What does [%'={$percentageDone}s>%-{$percetageLeft}s] mean?
我发现我正在使用这个很酷的进度条:
但我不知道它在做什么,我没能google它。
"\r3[0G3[2K[%'={$percentageDone}s>%-{$percetageLeft}s] - $percentageDone%% - $absoluteDone/$absoluteTotal - avg %.4f - %s",
这就是我正在使用的。
我认为序列是:
\r
- 马车return,返回开始
3[0G
- Esc[0g
清除当前列的标签` *
3[2K
- Esc[2K
清除整行 *
[%'={$percentageDone}s>%-{$percetageLeft}s]
*
当我删除代码时,这没有达到我的预期,来源:http://ascii-table.com/ansi-escape-sequences-vt-100.php
那么,这些序列是否提取正确?解释是否正确?还有为什么最后写的很酷吧?
[====> <much more spaces> ]
要测试的代码:
for ($i = 0; $i <= 100; $i++) {
$absoluteDone = $i;
$absoluteTotal = 100;
$percentageDone = floor(($absoluteDone / $absoluteTotal) * 100);
$percetageLeft = 100 - $percentageDone;
$avgTime = 10;
$setCursorToLineStart = "3[0G";
$clearLine = "3[2K";
$progressbarAndStatusInfo = sprintf(
$setCursorToLineStart
. $clearLine
. "[%'={$percentageDone}s>%-{$percetageLeft}s] - $percentageDone%% - $absoluteDone/$absoluteTotal - avg %.4f - %s",
"",
"",
$avgTime,
gmdate("H:i:s", $avgTime * ($absoluteTotal - $absoluteDone))
);
echo $progressbarAndStatusInfo;
sleep(1);
}
ANSI 转义码在我看来是正确的,但是:
[%'={$percentageDone}s>%-{$percetageLeft}s]
与ansi无关。它通过 sprintf 填充:
'={$percentageDone}
将用 x 个“=”字符填充该行,其中 x 是 $percentageDone 中的值。
有关详细信息,请参阅 sprintf 文档。
我发现我正在使用这个很酷的进度条:
但我不知道它在做什么,我没能google它。
"\r3[0G3[2K[%'={$percentageDone}s>%-{$percetageLeft}s] - $percentageDone%% - $absoluteDone/$absoluteTotal - avg %.4f - %s",
这就是我正在使用的。
我认为序列是:
\r
- 马车return,返回开始3[0G
-Esc[0g
清除当前列的标签` *3[2K
-Esc[2K
清除整行 *[%'={$percentageDone}s>%-{$percetageLeft}s]
*
当我删除代码时,这没有达到我的预期,来源:http://ascii-table.com/ansi-escape-sequences-vt-100.php
那么,这些序列是否提取正确?解释是否正确?还有为什么最后写的很酷吧?
[====> <much more spaces> ]
要测试的代码:
for ($i = 0; $i <= 100; $i++) {
$absoluteDone = $i;
$absoluteTotal = 100;
$percentageDone = floor(($absoluteDone / $absoluteTotal) * 100);
$percetageLeft = 100 - $percentageDone;
$avgTime = 10;
$setCursorToLineStart = "3[0G";
$clearLine = "3[2K";
$progressbarAndStatusInfo = sprintf(
$setCursorToLineStart
. $clearLine
. "[%'={$percentageDone}s>%-{$percetageLeft}s] - $percentageDone%% - $absoluteDone/$absoluteTotal - avg %.4f - %s",
"",
"",
$avgTime,
gmdate("H:i:s", $avgTime * ($absoluteTotal - $absoluteDone))
);
echo $progressbarAndStatusInfo;
sleep(1);
}
ANSI 转义码在我看来是正确的,但是:
[%'={$percentageDone}s>%-{$percetageLeft}s]
与ansi无关。它通过 sprintf 填充:
'={$percentageDone}
将用 x 个“=”字符填充该行,其中 x 是 $percentageDone 中的值。
有关详细信息,请参阅 sprintf 文档。