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.
我正在尝试使用 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.