Приколы анекдоты

Console: Progress Bar

декабря 10, 2008 · 3:21 дп @ Alex Snet  -  4 комментария


Продолжая тему консоли…

Простой прогресс-бар на пхп… =)

<?
class progressbar
{    
    private $escapeSequence = "\033[%sm";
 
	private $text = '';
	private $steps = 0;
	private $delim = '';
	private $step = 0;
	private $maxchars = 70;
 
	public function __construct($steps=100,$text='',$delim='#',$maxchars=70)
	{
		$this->steps = abs($steps);
		$this->step  = 0;
		$this->text  = $text;
		$this->delim = $delim;
		$this->maxchars = $maxchars;
		$this->draw();
	}
 
	public function update()
	{
		$this->step++;
		$this->redraw();
	}
 
	private function draw()
	{
		print $this->text.' [';
 
		$proc = round(($this->step/$this->steps)*100,0);
		$complete = $proc.'% complete';
 
		$isuse = strlen($complete) + 4 + strlen($this->text);
 
		$max = $this->maxchars - $isuse;
 
		$dash = round($max*($proc/100)+1);
		$free = $max - $dash;
 
		if($dash>0) print str_repeat($this->delim,$dash);
		if($free>0) print str_repeat('-',$free);
		print '] '.$complete;
	}
	private function redraw()
	{
		$this->toPos();
		$this->draw();
	}
	private function toPos( $column = 1 ) 
	{
	    echo "\033[{$column}G";
	}
}
?>

Ссылки, где можно айти этот класс:
phpclasses.org

Тэги: , , ,

А еще я писал про:
Ура! Начался этап голосования.
Хм.. радостная новость =)

4 комментария → “Console: Progress Bar”


  1. CharnaD

    13 Дек, 2008

    Я все хотел у себя на хостинге сделать CLI приложение, а там нельзя((

    Ответить

  2. Alex Snet

    14 Дек, 2008

    CharnaD, могу предложить свой..
    ВПС, если нужно…

    Ответить

  3. 0utPunk

    17 Дек, 2008

    Довольно интесный класс, давно хотел сам написать, да не успел) Как только пригодится, попробую обязательно.

    Ответить

  4. Alex Snet

    17 Дек, 2008

    Буду рад, если поможет =)

    Если что, то заходите почаще.. Скоро выложу сурцы как обрабатывать сложные мат расчеты и так далее.. =)

    Ответить

Оставить свой след.

1 2 3 4 5 6 7 8 9 10