2012-02-02 70 views
0

我正在尋找的東西在PHP中,會給出一個系統命令的輸出(原始)在一個變量與返回代碼。php系統命令與輸出和返回代碼

  • exec這樣做,但輸出是在陣列並因此返回的數據是不恰當(如\n進來新索引)。
  • system輸出輸出流中的數據而不是變量。
  • shell_exec不給出返回值,但給出原始數據。
+2

你不能只是['implode()'](http://php.net/manual/en/function.implode.php)來自'exec()'的結果把它變成一個字符串嗎? – JJJ 2012-02-02 09:14:29

+0

嘿,工作......因爲這個愚蠢的事情很長一段時間卡住....非常感謝 – 2012-02-02 10:04:24

回答

2

聽起來像你要找的輸出緩衝:

ob_start(); 
system($command, $returnCode); 
$output = ob_get_clean(); 

這應該在每個輸出線的末端保留所有空白字符(如exec你寫的這些破壞,所以implode不會是一個選項)。或者,您可以打開一個進程並獲取管道(標準輸出,STDOUT)並從這些管道讀取輸出。但它更復雜(但給你更多選擇)。見proc_open