Я хотел бы сделать многострочный возврат каретки с php для командной строки.
Это возможно?
Я уже знаю, как этого добиться одной строкой print("\r")
но хотелось бы знать, как это сделать в несколько строк.
Напечатанные данные должны выглядеть следующим образом:
$output = "Total time passed: 34, \n
Total tests: 14/523
";
print($output . "\r");
Он работает для одной строки, поэтому новая строка не добавляется при каждой печати в цикле.
Когда я использую его с PHP_EOL или \ n, я получаю новые строки все время. Я просто хочу, чтобы при обновлении отображались две строки.
Вы можете сделать это, используя ANSI escape
голец [F
Как пример:
for ($i = 1; $i < 5; $i++) {
$prevLineChar = "\e[F";
sleep(1);
echo "$i\nof 5\n" . $prevLineChar . $prevLineChar;
}
Ты ищешь PHP_EOL
По одному на каждый возврат каретки. Посмотреть здесь: https://stackoverflow.com/a/128564/2429318 для хорошего дружеского описания.
Это один из Основные предопределенные константы в PHP
PHP_EOL (строка)
Правильный символ «Конец строки» для этой платформы. Доступно с PHP 5.0.2
Вы могли бы написать что-то вроде:
print("\n\n\n\n\n");
но что если вы хотите напечатать динамическое число новых строк 🙂
попробуйте эту функцию:
function new_lines($n) {
for($i = 0; $i < $n; $i++) { echo PHP_EOL; }
}
Назовите это так:
//print 100 new lines
new_lines(100);