При использовании popen
в php есть ли способ сохранить цветной вывод, который может генерировать программа? Может быть, я могу сказать оболочке печатать все цветовые escape-последовательности вместо их разрешения?
Сохранить цветной вывод с помощью php popen
comment
Вы делаете это в скрипте PHP или в командной строке?
- person Justin Wood   schedule 17.09.2013
comment
Я запускаю php-скрипт в командной строке, которая выполняет программу, использующую escape-последовательности цветов.
- person DudeOnRock   schedule 17.09.2013
Ответы (1)
Это зависит от программы, которую вы вызываете. Обычно, если программа поддерживает цветной вывод, она спрашивает ОС: «Я работаю на терминале?» Если да, то он выводит цветовые коды. Если нет, то не будет. Если вы запустите эту программу через popen()
, тогда ОС скажет «нет, вы не работаете на терминале», и программа решит не выводить цветовые коды (поскольку они будут запутанными в захваченном выводе).
Некоторые программы могут иметь возможность принудительно выводить цветовые коды, даже если вывод не записывается на терминал. Однако это не то, что вы можете форсировать извне, если у программы еще нет способа сделать это.
person
Greg Hewgill
schedule
16.09.2013
Это отвечает на все мои вопросы! Спасибо.
- person DudeOnRock; 17.09.2013
Если вы используете утилиты GNU, такие как
ls
, аргументом force будет --color=always
.
- person Martin von Wittich; 17.09.2013