2010-04-06 101 views
3

我意識到這可能是奇怪的東西,但這裏是我的。PHP到C/C++通過CGI腳本

我有一個用C/C++編寫的應用程序(手寫識別引擎)。這個應用程序有Perl封裝,它是由應用程序的作者使用SWIG製作的。我的網站是用PHP編寫的,所以我正在尋找一些方法使PHP能夠與C/C++應用程序一起工作。

我現在想到的唯一方法是創建一個CGI腳本(perl腳本),它接受來自我網站的POST請求(AJAX請求),通過它的Perl包裝發送給識別引擎,獲取所需的數據並作爲對AJAX請求的響應返回所需的數據。

你認爲這可以做到這一點嗎?有沒有更好的解決方案?

謝謝!

回答

2

你認爲這是可以做到這樣?

是的,沒有理由不能完成。

有沒有更好的解決方案?

可能。如果打算執行perl包裝器作爲系統調用單獨的Perl腳本,則不需要單獨的CGI perl腳本。你可以直接在你的網站上直接從PHP進行系統調用。如果PHP是比Perl的CGI更適合網絡環境的舒適區域,則可能會有所幫助。如果Perl腳本包裝是一個相當明顯且簡單的API調用集合,並且您對Perl CGI感到滿意,則可以使用OTOH。 ,更好的解決方案是將該命令行Perl腳本移植到內部使用API​​的Perl CGI腳本中,繞過系統調用。

對於大批量的東西,刪除系統調用是一個巨大的勝利表現明智的,加上允許更好更簡單的錯誤處理。

2

你所建議的是:

web client <-> Perl CGI script <-> Perl wrapper <-> C program 

有沒有什麼特別的毛病這種方法,雖然它顯然不是最有效的可能的方式做到這一點。性能有多重要?如果它不一定非常快,那麼確定這樣做,這聽起來是最容易開發的。

如果你想走得更遠了一步,然後在上面的原理優化的明顯的一點就是崩潰兩個Perl的層:

web client <-> Perl CGI script <-> C program 

的問題是,是否值得你的時間來做到這一點?您可以查看Perl包裝的源代碼並自行決定。

我的建議是最初開發它簡單的方法,然後,如果出於某種原因,你決定是不夠的,兩個Perl腳本合併成一個。但現在,請不要擔心,並繼續提出您的想法。