2014-04-16 58 views
0

我想在已經安裝了pc root的PHP中執行一個模擬程序。這意味着,我可以在任何目錄中執行它。我試圖使用shell_exec執行它,但我無法看到任何輸出,而當我從終端運行它時,它可以在任何地方使用。這個程序也會生成一張圖片,以後我希望它出現在頁面中,這不是什麼大不了的事情。但問題是隻有一個空的圖像被創建,沒有輸出值。使用PHP執行程序

<?php 
$output = exec('rpict -vp 0 0 0 -vd 0.01 0 1 -ab 2 -ad 2048 -ar 64 -as 64 -aa 0.1 -vv 180 -vh 180 -vth with_sun_12_30_13_30.oct > test.hdr'); 
echo "<pre>$output</pre>"; 
?> 
+0

請更新你已經嘗試了代碼的問題,並檢查你的錯誤日誌尋找線索。 –

+0

你是否在呼應shell_exec輸出?它返回它,它不會自我回應。使用'error_reporting(E_ALL);'如果你仍然看不到輸出。 – Devon

+0

<? $ output = exec('rpict -vp 0 0 0 -vd 0.01 0 1 -ab 2 -ad 2048 -ar 64 -as 64 -aa 0.1 -vv 180 -vh 180 -vth with_sun_12_30_13_30.oct> test.hdr') ; echo「

$output
」; ?> –

回答

0

rpict可能不在運行Web服務器的用戶的路徑上。嘗試用完整路徑替換它。 (你可以在大多數系統上輸入which rpict找到它)。

像德文說,關閉錯誤報告了太多,以確保你得到的全貌:,你使用WAMP服務器

<?php 
    error_reporting(E_ALL); 
    $output = shell_exec('/path/to/rpict ...'); 
    echo "<pre>$output</pre>"; 
?> 
+0

仍然不工作,是否有可能我不能與我的目錄進行通信? 在終端上,例如,如果我只使用rvu命令,它將返回: rvu:fatal - missing octree參數 但我沒有得到任何輸出,現在只有30711出現 謝謝。 –

+0

我不熟悉輝光,恐怕,但它聽起來像問題不在於您的PHP代碼。 (在Debian(etc)框中,這通常是www-data) –

+0

我正在運行一個Apache web服務器。Radiance被添加到根目錄,所以可以運行在任何文件夾中,但是如果你是解決一個文本文件或圖像目錄很重要。我有另一種可能性,因爲我擅長matlab,我可以輕鬆做到所有這些步驟在matlab代碼中,只考慮我應該考慮的是從php運行matlab m文件,我希望它比Radiance更容易。 –