PHP shell_exec / passthru, показывающий вывод, отличный от фактического вывода оболочки

Я пытаюсь отобразить вывод команды оболочки, используя PHP passthru функция. Я получаю дополнительный [0;32m где фактический выход оболочки имеет зеленую линию, и я также получаю дополнительный [m в начале несколько других строк.

Что мне нужно сделать, чтобы получить вывод PHP без этих дополнительных символов?

Моя команда PHP:

passthru('/var/www/cCompiledScript');

0

Решение

Я не знаю что 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.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]