CLI spinner processing

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Check out this cool little snippet for use in CLI scripts. It shows processing with a spinner. It took me a little while to figure out the magic combination of the cursor array and ternary operator. My main goal was to make it as self contained and efficient as possible. I am importing millions of records, and didn't want to waste CPU time on computing modulus on some huge $i value. :)

--------------------- 8< SNIP >8 ----------------------------------------------

#!/usr/bin/php -q
<?php
define('ESC', 27);
printf( "%c[2J", ESC ); //clear screen

//note how the '-' is at [1], not [0]
$cursorArray = array('/','-','\\','|','/','-','\\','|'); 

echo "Processing: ";

printf( "%c7", ESC ); //save cursor position

for ($count = 1; $count <= 30; $count++) 
{
	//note that $i is all self contained.
	printf("%c8(".$cursorArray[ (($i++ > 7) ? ($i = 1) : ($i % 8)) ].") %02d", ESC, $count); //restore cursor position and print
	sleep(1);
}

echo "\nDone.\n";
?>

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux