Я пытаюсь отобразить вывод команды оболочки, используя PHP passthru
функция. Я получаю дополнительный [0;32m
где фактический выход оболочки имеет зеленую линию, и я также получаю дополнительный [m
в начале несколько других строк.
Что мне нужно сделать, чтобы получить вывод PHP без этих дополнительных символов?
Моя команда PHP:
passthru('/var/www/cCompiledScript');
Я не знаю что cCompiledScript
есть, но ясно, что он выводит escape-последовательности ANSI для генерации цвета на терминале. Он может иметь флаг командной строки или переменную среды, которые можно установить для отключения вывода цвета. Если вы написали cCompiledScript
Вы можете добавить флаг, чтобы отключить цвет. В противном случае вам придется раздеть цветовые коды:
passthru('/var/www/cCompiledScript | sed "s/\x1B\[\([0-9]\{1,2\}\(;[0-9]\{1,2\}\)\?\)\?[mGK]//g"');
sed
команда выше от этот ответ на Юникс & Linux Stack Exchange.
Других решений пока нет …