2010-06-24 59 views
2

我有一個版本的A *算法,它在Python列表中構建了一個英國道路和循環網絡圖。大約需要30秒 初始化,但一旦完成,可以很快找到任何兩個頂點之間的最短路徑 。 PHP提供的開始和結束頂點ID爲 。從PHP調用Python程序

我試圖找出在 PHP和Python程序之間進行通信的最佳方式。我只想在Apache服務器啓動時執行初始化階段 ,所以我的問題是:如何保持 python程序的活動並通過php請求路由?我有一個 GLAMP設置。

+0

什麼是摹代表什麼? – 2010-06-24 23:05:10

+0

@Pekka推測是GNU/Linux而不僅僅是Linux,因爲GNU/Linux是Linux內核和GNU子系統的操作系統的技術上正確的名稱。 – rossipedia 2010-06-24 23:07:32

+0

@Bryan aaah,歡呼聲。 @Simon這是你在那裏建立的一個令人印象深刻的系統! **哇**。你用什麼樣的數據呢?在可以想象的未來,科隆地區會不會有一個版本? :) – 2010-06-24 23:12:43

回答

2

我能想到的最簡單的方法是XMLRPC。蟒使得它可怕容易建立一個XMLRPC服務器,並有php_xmlrpc用於在PHP端綁定...

def calculate_path(v1, v2): 
    return [v1, ..., v2] 

from SimpleXMLRPCServer import SimpleXMLRPCServer 
server = SimpleXMLRPCServer(('localhost', 9393)) 
server.register_function(calculate_path) 
server.serve_forever() 

和你正在運行,應該能夠從做一個XMLRPC呼籲calculate_pathhttp://localhost:9393/你的PHP應用程序。

+0

感謝您提供的所有解決方案,但我最終選擇了這個解決方案,因爲它看起來最簡單。然而,它讓我花了相當長的時間纔得到Pear模塊使用PHP5.3, - 我通過預定義函數dl(){return false;}來完成 現在我們已經剝去了絕大多數的XMLRPC包,非常輕量級版本。 – 2010-07-01 10:01:07

0

我會從你的Python應用程序製作一個「後端」服務器。有很多方法可以調用到Python應用程序:

這可以避免Python應用程序的任何啓動懲罰。