0

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

在没有这些额外字符的情况下,我需要做什么才能获得 PHP 输出?

我的 PHP 命令是:

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

1 回答 1

3

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

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

上面的sed命令来自Unix & Linux Stack Exchange上的这个答案

于 2015-09-17T12:48:26.653 回答