Сохранение цветного вывода с помощью php's popen

Когда используешь popen в php, есть ли способ сохранить цветной вывод, который может генерировать программа? Есть ли способ, которым я могу сказать оболочке распечатать все цветовые escape-последовательности вместо их разрешения?

1 ответ

Решение

Это зависит от программы, которую вы вызываете. Обычно, если программа поддерживает цветной вывод, она спрашивает ОС: "Я работаю на терминале?" Если да, то он выводит цветовые коды. Если нет, то не будет. Если вы запустите эту программу через popen(), тогда ОС скажет "нет, вы не работаете на терминале", и программа решит не выводить цветовые коды (потому что они будут сбивать с толку в захваченном выводе).

Некоторые программы могут иметь опцию принудительного вывода цветовых кодов, даже если вывод не записывается в терминал. Тем не менее, это не то, что вы можете применить извне, если у программы еще нет способа сделать это.

Другие вопросы по тегам