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