我想從我的php腳本運行一個可執行文件,命令行中使用的命令是
其中,profit是可執行文件,profit.in是輸入文件。我寫了下面的PHP腳本運行同一程序時,在命令提示符下運行在文件中傳遞命令?
回答
執行不會將結果返回給$profit
,試試這樣:
exec('C:/xampp/htdocs/example/profit.exe < profit.in',$results,$status);
if ($status === 0)
{
var_dump($results);//will be an array
}
還要確保路徑你的參數文件是正確的,如果它沒有被腳本生成,最好使用絕對路徑。
注
由於您的通話exec
使我相信你的工作在Windows中,路徑分隔符是反斜線,你應該逃避,太:
exec('C:\\xampp\\htdocs\\example\\profit.exe < profit.in',$results,$status);
是什麼它應該看起來像imo。
剛纔想到的第二個可能的問題是:您正在Windows機器上使用xampp。如果您是從命令行運行此腳本,請確保您使用的是正確的exe文件:php-cli.exe
,而不是php.exe
:
Thanls @Elias :)但輸出打印爲一個數組...我怎樣才能刪除數組並打印正常輸出作爲一個字符串? –
任何你喜歡的方式,它只是一個像任何其他數組。如果你需要在控制檯/命令提示符下打印出來:'echo implode(''\ n「,$ results);'這裏,雙引號是重要的,當使用單引號時'\ n'將被視爲一個字符串,不是換行。你也可以循環數組('while($ line = array_shift($ results))'或'for($ i = 0; $ i
再次感謝:) @Elias –
- 1. 傳遞命令行文本
- 2. 從命令行傳遞文件位置
- 3. 將文件傳遞給docker命令
- 4. C#通過命令行傳遞文件
- 5. VB.NET - 在命令行上傳遞命令
- 6. 傳遞字在命令
- 7. 傳遞文件中存在的命令行參數
- 8. 如何在xcodebuild命令中傳遞配置文件名稱?
- 9. 在OpenCV中傳遞文件名作爲命令行參數
- 10. 將命令傳遞到批處理文件中的命令行程序
- 11. 在bash腳本中傳遞scala命令
- 12. 在perl中傳遞命令行參數
- 13. 在C中傳遞命令參數
- 14. 在echo命令中傳遞python變量
- 15. 在命令中傳遞Gulp參數
- 16. 在C++中傳遞命令行參數
- 17. 從作爲命令行爭論傳遞的文件中讀取
- 18. unix命令通過傳遞行號從文件中讀取行
- 19. 將文件名傳遞給python中的shell命令
- 20. 傳遞第一個文件中DIR命令給一個變量
- 21. 使用命令文件在線程之間傳遞消息
- 22. 8086裝配/ MS-DOS,在命令行傳遞文件名
- 23. Eclipse插件:傳遞命令行參數
- 24. 傳遞命令行參數
- 25. 傳遞命令行參數
- 26. Bash:傳遞複合命令
- 27. 命令行參數傳遞
- 28. 傳遞命令行參數
- 29. 傳遞命令參數
- 30. 傳遞命令行參數
使用'system'功能來嘗試 –
您的profit.in文件在哪裏?當你的PHP腳本運行時,你確定profit.in文件與你的php腳本認爲它運行的目錄是一樣的嗎? – BugFinder
@BugFinder是的,我看了很久以前...... profit.in和php腳本都在同一個文件夾 –