Сохранение цветного вывода с помощью php's popen
Когда используешь popen
в php, есть ли способ сохранить цветной вывод, который может генерировать программа? Есть ли способ, которым я могу сказать оболочке распечатать все цветовые escape-последовательности вместо их разрешения?
1 ответ
Это зависит от программы, которую вы вызываете. Обычно, если программа поддерживает цветной вывод, она спрашивает ОС: "Я работаю на терминале?" Если да, то он выводит цветовые коды. Если нет, то не будет. Если вы запустите эту программу через popen()
, тогда ОС скажет "нет, вы не работаете на терминале", и программа решит не выводить цветовые коды (потому что они будут сбивать с толку в захваченном выводе).
Некоторые программы могут иметь опцию принудительного вывода цветовых кодов, даже если вывод не записывается в терминал. Тем не менее, это не то, что вы можете применить извне, если у программы еще нет способа сделать это.