This can be done using ANSI Escape Sequences -- see here for a list.
In PHP, you'll use "33"
when it's indicated ESC
on that page.
In your case, you could use something like this :
echo "Progress : "; // 5 characters of padding at the end
for ($i=0 ; $i<=100 ; $i++) {
echo "33[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 a bit, making sure I always have 5 extra characters, and always displaying the same amount of data, to always move backwards by the same number of chars...
But, of course, you should be able to do much more complicated, if needed ;-)
And there are many other interesting escape sequences : colors, for instance, can enhance your output quite a bit ;-)
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…