簡體   English   中英

通過PHP從命令行運行程序-傳遞命令,而不是每次都重新啟動程序

[英]Running program from the command line via PHP - Passing commands instead of restarting the program every time

我在筆記本電腦上使用本地服務器通過PHP控制C#程序。 基本上,我將POST傳遞到我的Web服務器,並將其用作命令行程序的參數。 我的代碼本質上是這樣的:

$parameters = $_POST['parameters'];
system('C://THEFILEPATH/myprogram.exe ' . $parameters);

問題是,這會使myprogram.exe每次我想傳遞一些東西時都停止並啟動。 由於程序的很大一部分是初始化,因此會引起一些不必要的延遲。 有沒有一種方法可以通過PHP運行myprogram.exe,並在繼續運行時傳遞變量,而不是每次都重新啟動它?

謝謝!

接受輸入並將其寫入文件。 您的myprogram應該不時讀取文件,並刪除所有讀取的輸入,以便文件像隊列一樣工作。 如果您想始終運行程序,並且在運行時收到您的輸入,則應考慮實現偵聽特殊網絡端口的組件。

http://www.php.net/manual/zh/function.proc-open.php這提供了雙向支持(讀取和寫入)。 不過,我不確定在Windows上如何進行測試。 它稍后說:

Windows兼容性:子進程可以使用2以上的描述符(stderr)作為可繼承句柄,但是由於Windows體系結構並未將文件描述符編號與低級句柄相關聯,因此子進程(尚未)沒有訪問方法這些手柄。 Stdin,stdout和stderr可以正常工作。

因此,您應該能夠像文件一樣對其進行寫入。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM