2013-01-16 22 views
0

我需要在PHP中使用python編寫的一些功能。我需要將參數傳遞給python函數,並將結果(至少是簡單類型:integer,float,tuple等)傳遞迴php ?.可以做到嗎?有沒有從PHP使用Python代碼的正確方法?

+0

python&PHP是2種不同的編程語言。你想要一個轉換器? – Raptor

+2

你會接受'是'作爲答案嗎? :)儘管如此,更多的上下文和背景將會很有用 –

+2

實際上,您可以使用shell輕鬆執行其他程序。與在PHP中觸發shell腳本的方式相同,只要將它直接打印到stdout或傳遞特殊的文件流句柄,就可以調用Python程序並獲取返回輸出值。問題是,爲什麼? –

回答

1

您應該使用XML-RPC(遠程過程調用)。爲此設置一個Python服務器非常簡單,而在PHP中,使用http://php.net/manual/de/ref.xmlrpc.php

例如,如實施例(從docs截取)

from SimpleXMLRPCServer import SimpleXMLRPCServer 
from SimpleXMLRPCServer import SimpleXMLRPCRequestHandler 

# Restrict to a particular path. 
class RequestHandler(SimpleXMLRPCRequestHandler): 
    rpc_paths = ('/RPC2',) 

# Create server 
server = SimpleXMLRPCServer(("localhost", 8000), 
          requestHandler=RequestHandler) 
server.register_introspection_functions() 

# Register pow() function; this will use the value of 
# pow.__name__ as the name, which is just 'pow'. 
server.register_function(pow) 

# Register a function under a different name 
def adder_function(x,y): 
    return x + y 
server.register_function(adder_function, 'add') 

# Register an instance; all the methods of the instance are 
# published as XML-RPC methods (in this case, just 'div'). 
class MyFuncs: 
    def div(self, x, y): 
     return x // y 

server.register_instance(MyFuncs()) 

# Run the server's main loop 
server.serve_forever() 

建立一個完全工作XML-RPC服務器。

然後MyFuncs的每種方法都可以從支持XML-RPC的任何編程語言(包括PHP)中使用。

3

你可以從PHP中使用exec

創建Web服務來訪問運行任何外部腳本。這將是最好的方法。