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.
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