我想要做的是有一個PHP腳本運行一個程序,並讓它以某種方式從中檢索數據。例如,程序會解析文件中的數據並返回顯示PHP腳本的數據。PHP檢索外部程序數據
到目前爲止,我知道打電話exec("Program.exe");
,但我會不得不使用數據創建一個文件,然後讓PHP腳本調用fopen並獲得它?有沒有更好的方法來做到這一點?謝謝
我想要做的是有一個PHP腳本運行一個程序,並讓它以某種方式從中檢索數據。例如,程序會解析文件中的數據並返回顯示PHP腳本的數據。PHP檢索外部程序數據
到目前爲止,我知道打電話exec("Program.exe");
,但我會不得不使用數據創建一個文件,然後讓PHP腳本調用fopen並獲得它?有沒有更好的方法來做到這一點?謝謝
根據manual page for exec()
,您可以將數組作爲另一個參數傳遞給它,並且該數組將填充程序的輸出行。
exec("Program.exe", $results);
// $results is now an array where each element is a line of output
如果你需要一個命令只是輸出和/或可以通過輸入命令行的外部命令,然後執行exec()或中繼()是要走的路。
如果您需要能夠將更長的數據量輸入到外部命令中,而不是通過命令行提供的數據,則需要通過STDIN將其傳入。我建議使用proc_open(),它可以調用外部命令,但也可以通過標準輸入/輸出流與它通信。您可以在http://www.php.net/manual/en/function.proc-open.php
中看到它的一個示例用法程序需要調用以將數據放入$ results中的函數是什麼?我在C語言中調用了printf(「Test」),但在PHP中我調用了'echo&results',它只顯示「Array」。 – kaykun 2010-05-06 03:16:03
你不能'echo'一個數組 - 你需要使用類似'print_r()'的東西來顯示數組內的項目。 – Amber 2010-05-06 03:44:38