使用PHP的exec()函数(或类似函数),如何显示终端错误输出?

时间:2011-11-23 09:12:11

标签: php compiler-errors terminal web

  

可能重复:
  How can I know the error in command in an exec function?

我只是想知道是否有办法(使用PHP)将编译错误信息从终端输出到浏览器?

例如: 如果您使用此代码在终端中执行...

gcc -o try try.c

...并假设“try.c”有一些错误。 终端将输出如下内容:

  • try.c在函数'main'中:
  • try.c:27'x'未声明(首次使用此功能)
  • try.c:27(每个未声明的标识符仅报告一次
  • try.c:27对于它出现的每个功能。)

同时,使用这个PHP代码...

<?php exec("gcc -o try try.c"); ?>

浏览器不会像终端那样返回任何输出。是否可以直接或间接地将终端显示的错误详细信息传递给在浏览器上显示?

非常感谢。

1 个答案:

答案 0 :(得分:0)

正如@hakre在评论中指出的那样 - 您可以简单地重定向STDERR流,但这是另一种解决方案:

exec('command here', $output, $exit_status);
if ($exit_status !== 0) echo implode('<br />', $output);

如果执行成功 - 每个程序都应返回退出状态0,任何其他代码都应该表示某种错误。