RPC利器——PHPRPC(解决PHP调用python问题)
2012-03-29 21:12
681 查看
最近在毕设中要用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()
具体详细的内容请登录官网查看文档。
虽然名叫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()
具体详细的内容请登录官网查看文档。
相关文章推荐
- linux+php+apache web调用python脚本权限问题解决方案
- Python下调用json.dumps中文显示问题解决办法
- PHP调用Linux命令权限不足问题解决方法
- 解决java调用python的Cannot import site module and its dependencies: No module named site问题
- linux下用php调用PDO链接出错问题 pdo未加载解决方法
- PHP中调用SVN命令更新网站方法(解决文件名包含中文更新失败的问题)
- 在PHP调用JS中的方法,以此来解决浏览器兼容问题
- python 调用pymysql模块遇到\转义问题解决办法
- Python下调用json.dumps中文显示问题解决办法
- Python下调用json.dumps中文显示问题解决办法
- Python、PHP通过xml-rpc进行通信,xml-rpc中文的解决
- PHP调用Python失败的解决办法
- Python下调用json.dumps中文显示问题解决办法
- linux Eclipse上c++调用使用了tensorflow库的python程序遇到的问题及解决方法
- nginx上 使用 php 调用python 的问题
- linux+php+apache web调用python脚本权限问题
- 定制带第三方库的python,解决spark/hadoop环境中sklearn的调用问题
- 使用第三方库的解决windows下Apache+PHP调用SSL函数假死问题
- Windows C++程序调用包含TensorFlow代码的Python脚本出错问题的解决办法
- PHP调用存储过程返回值不一致问题的解决方法分析