PHP shell_exec / passthru 显示输出与实际 shell 输出不同

PHP shell_exec / passthru showing output different from actual shell output

我正在尝试使用 PHP 的 passthru 函数显示 shell 命令的输出。我得到了一个额外的 [0;32m,其中实际的 shell 输出有一条绿线,并且在其他几行的开头也得到了一个额外的 [m

我需要做什么才能得到没有这些额外字符的 PHP 输出?

我的 PHP 命令是:

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

我不知道cCompiledScript是什么,但显然它是在输出ANSI转义序列以在终端上生成颜色。它可能有一个命令行标志或环境变量,您可以将其设置为禁用颜色输出。如果你写 cCompiledScript 你可以添加一个标志来禁用颜色。否则你将不得不去掉颜色代码:

passthru('/var/www/cCompiledScript | sed "s/\x1B\[\([0-9]\{1,2\}\(;[0-9]\{1,2\}\)\?\)\?[mGK]//g"');

上面的sed命令来自this answer on the Unix & Linux Stack Exchange.