のようなユーティリティwget
は、ダウンロード率をコンソールに書き込み、新しい行を書き込まずに更新を続けることができます。この機能は何と呼ばれ、Symfonyのコンソールコンポーネントで可能ですか?
質問する
733 次
2 に答える
3
1ed の回答を使用して、Symfony が 2.2 で利用可能な進行状況ヘルパーを使用してそれを行う方法を確認しました。16 進文字コード "\x08" (ANSI バックスペース文字) は、1 文字を削除します。最後の行の長さを追跡し、str_repeat を使用すると、目的の効果が得られます。
コンセプトの証明:
<?php
$lastLineSize = 0;
for ($i = 0; $i <= 50; $i++) {
echo str_repeat("\x08", $lastLineSize);
echo "Iteration {$i} of 50";
$lastLineSize = strlen("Iteration {$i} of 50");
usleep(100000);
}
echo " - Done\n";
出力:
[root@dev /home/myuser] > php test.php
Iteration 50 of 50 - Done
[root@dev /home/myuser] >
于 2012-11-18T23:33:35.423 に答える