2011-06-16 30 views
0

我正在構建一個RAKEFILE,並且我想要在php生成的頁面執行時顯示輸出。如何使用php管理rake輸出?

我試圖使用system()由於PHP文檔提到這一點:

的系統()調用也嘗試如果PHP運行作爲服務器模塊輸出的每一行後,自動刷新Web服務器的輸出緩衝區。

這似乎與多個外殼命令對應的工作,但是當我執行耙我只得到的第一行:

(in /Users/path/to/proj) 

任何想法?

乾杯!

回答

0

如果PHP作爲服務器模塊運行,那麼system()調用也會嘗試在輸出的每行之後自動刷新Web服務器的輸出緩衝區。

這意味着您只會從返回值中獲得最後一行輸出。 system()手冊頁中的例子顯示了它,並且它建議使用passthru()來獲取原始輸出。我通常使用exec()。

+0

nope,與passthru() – GreenDude 2011-06-16 06:32:42

+0

相同的東西然後嘗試exec() – LeleDumbo 2011-06-16 08:43:02

1

嘗試使用exec()功能

exec($command, $output); 

$輸出是一個數組

//retrieved data 
for($out = '',$x = 0,$len = count($output); $x < $len; $x++) { 
     $out .= $output[$x] . "\r\n"; 
} 

或簡單:

$out = join("\r\n", $output); 
0

TURS出兩個功能system() & exec()實際工作。雖然使用--verbose時生成的耙子輸出未被考慮。這就是我困惑的原因。如果任何人有更廣泛的知識區分,請分享:)