#php #windows #linux #command-line #php-5.3
#php #Windows #linux #командная строка #php-5.3
Вопрос:
Моя цель — вывести процент выполнения обновления на консоль (как в Linux, так и в Windows). В настоящее время я просто распечатываю процентное значение каждые 10%, но я бы предпочел, чтобы оно обновлялось каждые 1%, не заполняя экран процентами.
Возможно ли удалить текст, который вы записали в консоль на PHP?
Комментарии:
1. В качестве альтернативы используйте
print "17%r";
. Если вы используете возврат кареткиr
вместо перевода строкиn
, курсор будет помещен в начало строки, что позволяет перезаписать его при следующем выводе.2. марио: Спасибо! Это отвечает на вопрос, который я еще не задавал 🙂
Ответ №1:
echo chr(8);
выведет символ обратного пробела.
Комментарии:
1. Приятно! Это работает в Windows CMD. Будет ли это работать в Linux?
Ответ №2:
очень просто Обратите внимание на приведенный ниже пример
$removeLine = function (int $count = 1) {
foreach (range(1,$count) as $value){
echo "rx1b[K"; // remove this line
echo "33[1A33[K"; // cursor back
}
};
echo "-----------------------------n";
echo "--------- Start -----------n";
echo "-----------------------------n";
sleep(2);
$removeLine(3);
echo 'hi';
sleep(2);
$removeLine();
echo 'how are you ?';
die();
Ответ №3:
Смотрите Zend_ProgressBar
Ответ №4:
Console_ProgressBar от PEAR полезен для такого варианта использования.
Чтобы полностью очистить консоль, вы можете использовать:
if($_SERVER['SHELL']) {
print chr(27) . "[H" . chr(27) . "[2J";
}
это немного проще, чем отслеживать, сколько символов нужно заменить пробелом.