2011-11-23 102 views
0

可能重复:
How can I know the error in command in an exec function?使用PHP的exec()函数(或类似),如何显示终端错误输出?

我只是想知道,如果有一种方法(使用PHP)输出从终端到浏览器的编译错误信息?

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

gcc -o try try.c

...并假设 “try.c” 有一些错误。 终端将输出是这样的:

  • try.c在函数 '主':
  • try.c:27的 'x' 未声明(在一次使用此功能)
  • try.c: 27(每个未声明的标识符仅报告一次
  • try.c:27为它出现在各功能)

同时,使用此PHP代码...

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

浏览器不会像终端那样返回任何输出。是否有直接或间接的方式将终端显示的错误细节传递给浏览器显示?

非常感谢。

+2

有STDOUT和STDERR。你描述的输出很可能在STDERR上。抓住STDERR并返回。 – hakre

+0

也许'echo exec();'? – tekknolagi

+0

@hakre也 – tekknolagi

回答

0

由于@hakre在评论中所指出的 - 你可以简单地重定向STDERR流,但这里的另一种解决方案:

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

如果执行成功 - 每个程序应返回0和任何其他的退出状态代码应该意味着某种错误。

相关问题