This can be done using ANSI Escape Sequences - see here for a list.
In PHP, you will use "\033" if ESC specified on this page.
In your case, you can use something like this:
echo "Progress : "; // 5 characters of padding at the end for ($i=0 ; $i<=100 ; $i++) { echo "\033[5D"; // Move 5 characters backward echo str_pad($i, 3, ' ', STR_PAD_LEFT) . " %"; // Output is always 5 characters long sleep(1); // wait for a while, so we see the animation }
I simplified things a bit by making sure that I always have 5 extra characters and always displays the same amount of data to always move back the same number of characters ...
But, of course, you should be able to do a lot harder if necessary; -)
And there are many other interesting escape sequences: colors, for example, can slightly improve your output; -)
Pascal MARTIN Mar 10 '11 at 20:19 2011-03-10 20:19
source share