De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.

Barra de Progresso para scripts em PHP

Colaboração: José de Lima Junior

Data de Publicação: 04 de Outubro de 2009

Como PHP pode ser utilizado em linha de comando e os scripts podem demorar a terminar o processamento, em certos momentos, faz-se necessário mostrar ao usuário como está o andamento da execução do script.

O código em PHP abaixo, implementa uma barra de progresso que pode auxiliar visualmente a demonstração do andamento do processamento do script.

Note que o funcionamento deste script deve-se, principalmente, ao "\r" no comando printf. Portanto, nada impede que esta funcionalidade seja implementada em outras linguagens de script, com por exemplo shell script.

  <?php
  
  $maximo = 10000;
  $colunas = 90;
  
  $progresso = new BarraProgresso($maximo);
  $progresso->setColunas($colunas);
  
  for ($i = 0; $i <= $maximo ; $i++)
  {
        $progresso->mostrar($i);
  }
  
  echo "\n";
  
  class BarraProgresso
  {
        private  $colunas;
        private  $limite;
  
        function __construct($limite)
        {
                $this->limite = $limite;
                $this->setColunas(80);
        }
  
        public function setColunas($colunas)
        {
                $this->colunas = $colunas - 22;
        }
  
        public function mostrar($valor)
        {
                $percentual = (int)(($valor/$this->limite)*100);
                $barra = (int)($percentual * ($this->colunas/100));
                $mascara = "\r[%-" . $this->colunas . "s] %d%% (%2d/%2d)";
                printf($mascara, str_repeat("=", $barra). ">", $percentual, $valor, $this->limite);
        }
  }
  
  ?>
José de Lima Junior é analista de sistemas. Mais informações no site http://www.jr.eti.br

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de José de Lima Junior