我需要在PHP中使用python編寫的一些功能。我需要將參數傳遞給python函數,並將結果(至少是簡單類型:integer,float,tuple等)傳遞迴php ?.可以做到嗎?有沒有從PHP使用Python代碼的正確方法?
0
A
回答
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
相關問題
- 1. php代碼沒有正確嵌入
- 2. 方法代碼沒有以正確的順序執行
- 3. process.exec沒有返回正確的代碼
- 4. 有沒有正確的方法來測試EF代碼優先庫模式?
- 5. 什麼是正確的使用方法include有或沒有括號php
- 6. 有沒有更好的方法來做這個Python代碼?
- 7. 代碼沒有正確評估峯值
- 8. 這行代碼沒有正確轉義?
- 9. Java代碼沒有正確更新
- 10. javascript代碼沒有正確響應
- 11. 代碼沒有正確設置文本
- 12. Xamarin:方法沒有正確的簽名
- 13. 方法OnTapped沒有正確的簽名
- 14. 有沒有辦法在smarty模板中使用PHP代碼?
- 15. 有沒有辦法從代碼
- 16. 替代方法沒有源代碼
- 17. Python沒有正確循環
- 18. 在Python中運行一些帶有超時的代碼的正確方法
- 19. php發票代碼沒有正確更新訂單
- 20. 沒有代碼完成方法,Netbeans的
- 21. 有沒有正確的方法來測量迭代算法的加速?
- 22. 從C++代碼中調用Python調試的有效方法
- 23. 從php代碼正確的信息沒有被插入到sql db
- 24. .each()沒有正確迭代
- 25. 有沒有辦法使用TFS2010,但從TFS2008獲取代碼?
- 26. PHP沒有正確返回
- 27. PHP沒有正確劃分
- 28. 插入方法沒有正確比較
- 29. 方法沒有回覆正確總計
- 30. drawLine()方法沒有正確畫線(Android)
python&PHP是2種不同的編程語言。你想要一個轉換器? – Raptor
你會接受'是'作爲答案嗎? :)儘管如此,更多的上下文和背景將會很有用 –
實際上,您可以使用shell輕鬆執行其他程序。與在PHP中觸發shell腳本的方式相同,只要將它直接打印到stdout或傳遞特殊的文件流句柄,就可以調用Python程序並獲取返回輸出值。問題是,爲什麼? –