最近在毕设中要用php调用python的接口,在网上找到的一些解决方案都是通过调用OS的系统命令,及也就是用类似这样的方式system('python test.py');执行python的文件。这与调用exe的方式是一样的。这样做固然简单方便,但却有个很大的问题,就是不能与python写的函数进行交互,因为这样没办法传参数。我google到一种方法是说像通过类似命令行后的参数的形式传递参数,但经过考证并不合适。思来想去,虽然感觉貌似多此一举,但利用PHPRPC的方式实现会让开发变得非常舒服,使PHP与python差不多实现了无缝连接。下面简单说一下PHPRPC这个东西。
虽然名叫PHPRPC,但却不是说只针对PHP这一种语言,通过官网(http://phprpc.org/zh_CN/)我们可以发现几乎支持当下各大主流编程语言。而且调用起来非常简便。以我的例子来说,我要用PHP来调用python的接口,可以这样做。开一个新的端口(比如8089)来运行python构造的server,demo代码如下:
from phprpc import PHPRPC_Server # 引入 PHPRPC Server
import datetime
def helloworld()
return'helloworld'
def hi(name):
return'hi %s' % name
server = PHPRPC_Server()
server.add(helloworld)
server.add('hi')
server.add(hi, 'hello')
server.add(datetime.datetime.now)
server.debug = True
server.start()
然后在php中创建client,
$client = new PHPRPC_Client();
$client->setProxy(NULL);
$client->useService('http://localhost:8089');
$client->helloworld()
具体详细的内容请登录官网查看文档。