2011-11-23 34 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和任何其他的退出狀態代碼應該意味着某種錯誤。

相關問題