【问题标题】:PHP shell_exec / passthru showing output different from actual shell outputPHP shell_exec / passthru 显示与实际 shell 输出不同的输出
【发布时间】:2015-09-17 11:44:33
【问题描述】:

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

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

我的 PHP 命令是:

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

【问题讨论】:

  • 你从哪里得到cCompiledScript?它可能有一个标志来关闭颜色输出。

标签: php shell shell-exec passthru


【解决方案1】:

我不知道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

【讨论】:

  • cCompiledScript 是一个 wrapper.c 脚本。
  • 对不起,我不知道那是什么。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-12
  • 1970-01-01
  • 2018-05-18
相关资源
最近更新 更多