Это можно сделать с помощью ANSI Escape-последовательности - , смотрите список .
В PHP вы будете использовать "\033"
, когда указаноESC
на этой странице.
В вашем случае вы могли бы использовать что-то вроде этого:
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
}
Я немного упростил, убедившись, что у меня всегда 5лишние символы и всегда отображающие одно и то же количество данных, чтобы всегда перемещаться назад на одно и то же количество символов ...
Но, конечно, вы должны быть в состоянии сделать гораздо более сложным, если это необходимо; -)
И есть много других интересных escape-последовательностей: например, цвета могут немного улучшить ваш вывод; -)