Добрый день! Существует базовый скрипт, Код (Text): <?php echo "Запуск внешнего скрипта"; system("php progress.php"); который запускает внешнюю программу Код (Text): <?php echo "Внешний скрипт"; for ($i=0;$i<4;$i++){ echo $i."\n"; #Если использовать \r, вывод будет только последней строки sleep (1); } и выводит результаты выполнения в режиме лога консоль. Код (Text): Внешний скрипт 0 1 2 3 Можно ли как-то во внешнем скрипте использовать перенос каретки (\r), для того чтобы основной скрипт выводил только текущую строку вывода, а не в режиме лога? Спасибо!
В nix это аналог \n, и system() получает строку вывода, только при получении \n. Может иными путями это можно обойти в основном скрипте? Код (Text): PHP_EOL может в себе содержать только два значения либо \r\n для windows платформ либо \n для остальных --- Добавлено --- Пока приходит в голову только использовать вывод потока внешней программы в файл(>), а в скриптом этот файл парсить и уже возвращать каретку через \r Но по мне - это костыль.
похоже на попытку консольной программы на php, типа чтоб в одной строке показывало текущий прогресс например или / | \ крутил как спинер?
Да, именно это. Вызов внешнего скрипта как пример. Пытаюсь обработать результаты работы другой консольной программы, не забивая полностью лог основной.
Есть готовая библиотека, позволяющая произвольное позиционирование, изменение цвета и прочее, вот название хоть убей не помню... Что то типа console... На Хабре даже статья была по использованию... Или посмотреть что используется в ларавеле, там для консольных команд, тоже что то такое используется