Acesso direto ao conteúdo
Logotipo Dicas-L, por Ricardo Burile

Busca

Visite também: Segurança Linux ·  UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  NoticiasLinux ·  BR-Linux ·  SoftwareLivre.org ·  [mais]   
 

Você está aqui: Home  → Arquivo Dicas-L

 

Aprenda inglês de uma vez por todas

Assine a Lista Dicas-L

Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.

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

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

Formato PDF
Newsfeed RSS
Formato para impressão
PDF RSS Imprimir

Referências Adicionais

Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.

Avalie esta dica

  • Currently 2.99/5
  • 1
  • 2
  • 3
  • 4
  • 5

Avaliação: 3.0 /5 (1211 votos)

Opinião dos Leitores

Alex
04 Fev 2012, 22:10
Eu utilizei o código mas ele repete a porcentagem toda a tela, não faz um reflesh do progresso.
Ehinarr
03 Ago 2010, 01:26
Muito interessante, só que não consegui implementar.. A classe deve ficar em arquivo separado?
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script
Treinamentos, Consultorias e Soluçoes em TI. Baseados em softwares livres e padrões abertos para ambientes de missão crítica

Submarino.com.br

Guia Manga Universo