2011-05-11 83 views
1

我已經應用是在Java &我已創建該應用程序的&一個批處理文件(.BAT)在PHP這樣PHP服務器響應於執行

<?php 
     system ("cmd.exe /c final.bat"); 
    ?> 

的運行它的批處理文件時的android輸出是這樣的

C:\ wamp \ www \ php> java -jar最密切關聯的是... C:\ wamp \ www \ php> pause按任意鍵繼續。 。 。

我通過我的android應用程序調用了這個&想要這個作爲響應...你能告訴我如何做到這一點....如果我能夠消除響應的提示,這將是非常好的。

回答

0

查看exec function。它不是自動打印輸出,而是以字符串形式返回輸出,或者在第二個參數中以可選的行數組形式返回。然後你可以解析這個字符串或數組,只打印你需要的東西。

實施例這將打印所有但輸出的第一行:

exec('cmd.exe /c final.bat',$output); 
for($i = 1; $i < count($output); ++$i) echo $output[$i],'<br />'; 
+0

非常感謝你.... – prade 2011-05-12 13:19:05

0

system返回從命令的輸出,所以一個簡單的

echo system(...); 

會做的伎倆。爲了能夠將文本作爲輸入發送到被調用的命令,您應該使用popen()來代替,它允許您「使用」調用的命令,就好像您在shell /命令提示符下使用它一樣。

請注意,system將阻塞,直到外部程序完成。在你的情況下,坐在那裏「按任意鍵繼續」,這絕不會發生,你的PHP進程將無限期地停留在那裏(或者直到超過max_execution_time,以先到者爲準)。

+0

當我說回波系統(CMD)...的輸出爲如「C:\瓦帕\ WWW \ PHP> Java的罐子最密切的互動是這... C:\ wamp \ www \ php> pause按任意鍵繼續按任意鍵繼續。「....只有最後一行重複.... popen也沒有幫助。 。我的問題是隻保留我的輸出和刪除所有其他細節 – prade 2011-05-11 22:55:55