我正在尝试使用PHP的passthru
函数显示shell命令的输出。我得到一个额外的[0;32m
,其中实际的shell输出有一条绿线,并且在其他几行的开头也得到了额外的[m
。
如果没有这些额外的字符,我需要做什么才能获得PHP输出?
我的PHP命令是:
passthru('/var/www/cCompiledScript');
答案 0 :(得分:3)
我不知道cCompiledScript
是什么,但很明显它输出ANSI转义序列以在终端上生成颜色。它可能有一个命令行标志或环境变量,您可以设置为禁用颜色输出。如果你写了cCompiledScript
,你可以添加一个标志来禁用颜色。否则你将不得不去除颜色代码:
passthru('/var/www/cCompiledScript | sed "s/\x1B\[\([0-9]\{1,2\}\(;[0-9]\{1,2\}\)\?\)\?[mGK]//g"');
上面的sed
命令来自this answer上的Unix & Linux Stack Exchange。