やりたいこと
PHPをコマンドラインから実行する際に進捗率を表示させたい。
1 2 3 4 |
[host@srv ~]$ 現在 10% 完了 [host@srv ~]$ 現在 20% 完了 ・・・ [host@srv ~]$ 100%完了 |
のように1行1行表示するような形式ではなく、
1 |
[host@srv ~]$ 現在 XX % 完了 |
のように1行でxxの部分が書き換わっていくようにしたい。
やり方(サンプルコード)
1 2 3 4 5 6 7 |
<?php for($i = 0; $i < 100000; $i++) { echo "\x0D$i"; //file_put_contents("php://stderr","\x0D$i")とかでもOK } echo "\n"; exit; |
実行すると、0から99999までの数値が同じ行でインクリメント表示され、最後に改行されて終了する。
「\x0D」はCR(キャリッジ・リターン)のこと。
この方法で進捗%を表示すればOK