2010-11-10 44 views
4

是否有可能在服務器上運行C++程序並等待PHP進程傳遞參數。然後,C++程序將處理這些參數並將結果返回給PHP。你如何使用PHP與正在運行的C++進程交互?

我一直在搜索網頁,可以看到幾種從PHP運行C++程序的方式,但無法找到與已運行的C++程序進行交互的方式。

我在想的那種C++程序可能需要一些時間來設置,例如,他們創建了某種大數據結構,所以我不想在每次需要時運行它們。我希望C++程序創建它們的數據結構,然後坐下來等待,直到PHP詢問來自該數據結構的信息。

謝謝

+0

是否有任何理由不能將數據結構存儲在PHP原生支持的數據庫中? – badgerr 2010-11-10 09:38:46

回答

3
+0

我用C++編寫了一些工具,並不想將它們轉換,所以我通過PHP使用命名管道進行通信!好的解決方案 – djTeller 2010-11-10 09:48:22

+0

謝謝大家,謝謝Preet。我一直在尋找命名管道,我認爲他們是我前進的道路。我唯一的問題是,當多個客戶端PHP腳本實例寫入命名管道時,我會遇到問題,因爲我得到多組輸入和輸出而不知道特定輸入的正確輸出是什麼。有沒有辦法只允許一個php實例在任何時候寫入命名管道,並排隊其他實例等待輪到他? – Columbo 2010-11-10 17:17:25

+0

取決於您可以使用隊列的平臺。在Windows上有MS MQ,在Linux上有MQSeries。就我個人而言,我會在管道中的消息(稱爲相關ID)上放置一個標識符。然後當接收到消息時,根據id將消息放在一起,這對PHP進程是唯一的。 – 2010-11-10 20:05:32

1

會像SWIG是對你有用嗎? (http://www.swig.org/Doc1.3/Php.html)你可以打包你想使用的功能,將它暴露給你的PHP代碼。

相關問題