Most times when people write command line scripts they just let the output flow down the screen as a status indicator, or just figure “it’s done when it’s done” But sometimes it would be nice to have a simple clean status indicator, allowing you to monitor progress and gauge time-to-completion. This is actually very easy to accomplish. Simply use
instead of
in your output. Obviously the example below is very simplified, and this can be applied in a much more sophisticated fashion. But it works.
$row_count = get_total_rows_for_processing();
$limit=10000;
echo "\r\n[ 0%]";
for ( $i=0; $i < = $row_count; $i = $i + $limit ) {
$query="SELECT * FROM table LIMIT {$limit} OFFSET {$i}";
// do whatever
$pct = round((($i+$offset)/$row_count)*100);
if ( $pct < 10 ) {
echo "\r[ $pct%]";
} else {
if ( $pct < 100 ) {
echo "\r[ $pct%]";
} else {
echo "\r[$pct%]";
}
}
}
echo "\r[100%]\r\n";