Console_ProgressBar

Prev

Next

Console_ProgressBar

Console_ProgressBar は、カスタマイズ可能なプログレスバーをコンソール/ターミナルに表示します。

プログレスバーの例

This will display a very simple bar:
=====================================================

A more complicated bar, showing current status in numbers as well:
* 3/7 [==========================>-------------------------------------] 42.86%

Showing elapsed time, and using ANSI codes:
- 109/345 [========>------------------] 31.59% Elapsed Time: 00:03.94

Showing an estimate for the remaining time:
- 105/345 [============>-------------------------------] 30.43% ETA: 00:11.52

・require_once "Console/ProgressBar.php"

・Console_ProgressBar のインスタンスを作成します。

・何らかの進捗があった時点でupdate()をコールします。

・最後にerase()をコールします (オプション)。

単純なプログレスバーの例

<?php
require_once 'Console/ProgressBar.php';
$bar = new Console_ProgressBar('[%bar%] %percent%', '=>', ' ', 80, 7);

// 何らかの処理を行います
for ($i = 0; $i <= 7; $i++) {
$bar->update($i);
sleep(1);
}
echo "\n";
?>

[=======================================> ] 57.14%

バーの作成

この例では、5 個のパラメータを使用してプログレスバーのインスタンスを作成します。使用するパラメータはformat string、bar string、empty string、console widthおよびtarget numberです。

最初のパラメータ format stringは、プログレスバー全体のレイアウトを指定します。任意の文字のほかに、置換用の変数を指定することができます。

・%bar% が実際のプログレスバーです。

・%current% はupdate()で設定する実際の値です。

・%max% は、コンストラクタで設定した最大値(target number) で置き換えられます。

・%fraction% は%current%/%max% と同じ値です。

・%percent% は進捗状況をパーセントで表したものです。

・%elapsed% は経過時間です。

・%estimate% は、完了までの予測時間です。

二番目の引数は、プログレスバーで使用する文字列です。上の例では"=>" を指定しています。指定した文字列が短すぎる場合(この例の "=>" のように)、必要な長さを埋めるために、一番左の文字が繰り返されます。指定した文字列が長すぎる場合、余分な文字は左側から切り詰められます。

三番目の引数は、プログレスバーの「空欄」の位置を埋める文字列です。上の例では "-" を指定しています。指定した文字列が短すぎる場合(この例の "-" のように)、必要な長さを埋めるために、一番右の文字が繰り返されます。指定した文字列が長すぎる場合、余分な文字は右側から切り詰められます。

四番目の引数では表示幅を指定します。通常のコンソール/ターミナルの幅は 80 文字なので、ここでは 80 を渡しています。現時点では、ターミナルの文字幅を取得するメソッドはありません。

五番目の引数は、プログレスバー全体が表す数値です。たとえば 115 KB の大きさのファイルのダウンロード時にプログレスバーを表示するなら、ここで 115 を指定します。

続き…

ページ上段