Давно хотелось сделать что-то, что помогало бы отслеживать процент выполнения задачи в cli. Как раз сегодня с утра приятель и коллега burik666 случайно дал мне вектор, дав код крутяшки:
1 | $ php -r '$a="\|/-"; while (true){ for ($i=0; $i<4;$i++){echo "\r",$a[$i].$a[3-$i]; usleep(100000); } }' |
Я собственно тут же знал как это дело применить, так как давно хожу с идеей прогресс бара для cli в голове.
Долго думать не пришлось, состряпал на 5 минут сие творение:
1 2 3 4 5 6 7 8 9 | function progress($percVal) { echo "\rProgress: |".str_pad(str_repeat('-', $percVal / 2), 50, ' ',STR_PAD_RIGHT)."| {$percVal}%"; } for($i = 1; $i < 100; $i++) { progress($i); usleep(100000); } |
Код до ужаса прост, надо только знать стандартные строковые функции php.
Вся магия в «\r» – он собственно возвращает каретку в начало строки
К сожалению похожих по тематике статей пока нет.


0 Comments.