浅析PHP与Python进行数据交互


Posted in Python onMay 15, 2018

最近,决定在一个项目用tp5进行APP接口开发,用Python做数据分析,然后这就面临一个问题:PHP和Python如何进行数据交互?

思路

我解决此问题的方法是利用了PHP的passthru函数来调用命令运行Python脚本。

代码

PHP代码

//php.php
<?php
$params = "value"; #传递给python脚本的入口参数 
$path="python python.py "; //需要注意的是:末尾要加一个空格
passthru($path.$params);//等同于命令`python python.py 参数`,并接收打印出来的信息 
?>

若存在多个参数,则参数之间以空格分开

Python代码

sys.argv[]用于获取到的PHP传入python的入口参数

//python.py
import sys 
params = sys.argv[1] #即为获取到的PHP传入python的入口参数
print(params);

若在Python中接收多个参数

params = sys.argv[1:]

若要从Python中返回多个值,需要将值写入元组中,然后通过json.dumps()转化为json,并进行打印,PHP中通过passthru可以获得Python脚本打印的json

import sys
import json

params = ('Google', 'Runoob', 1997, 2000);
json_str =json.dumps(params);
print(json_str);

另需要在PHP中passthru前加@,否则会报以下提示

Notice: Array to string conversion in php.php on line 6

输出

浏览器中输出值为value

效果等同于

> python python.py value
value //输出‘value'
Python 相关文章推荐
python协程用法实例分析
Jun 04 Python
Python的爬虫程序编写框架Scrapy入门学习教程
Jul 02 Python
python简单操作excle的方法
Sep 12 Python
Python中的单下划线和双下划线使用场景详解
Sep 09 Python
Python中if有多个条件处理方法
Feb 26 Python
Python打印特殊符号及对应编码解析
May 07 Python
python如何处理程序无法打开
Jun 16 Python
Python工程师必考的6个经典面试题
Jun 28 Python
Keras搭建自编码器操作
Jul 03 Python
详解Python yaml模块
Sep 23 Python
python 自定义异常和主动抛出异常(raise)的操作
Dec 11 Python
Python中request的基本使用解决乱码问题
Apr 12 Python
Python使用min、max函数查找二维数据矩阵中最小、最大值的方法
May 15 #Python
django自带的server 让外网主机访问方法
May 14 #Python
Python中利用xpath解析HTML的方法
May 14 #Python
利用pyinstaller将py文件打包为exe的方法
May 14 #Python
django的登录注册系统的示例代码
May 14 #Python
django允许外部访问的实例讲解
May 14 #Python
运行django项目指定IP和端口的方法
May 14 #Python
You might like
thinkphp浏览历史功能实现方法
2014/10/29 PHP
PHP中Enum(枚举)用法实例详解
2015/12/07 PHP
用js实现键盘方向键翻页功能的代码
2007/06/03 Javascript
JavaScript高级程序设计 事件学习笔记
2011/09/10 Javascript
nodejs开发环境配置与使用
2014/11/17 NodeJs
JavaScript SweetAlert插件实现超酷消息警告框
2016/01/28 Javascript
Bootstrap分页插件之Bootstrap Paginator实例详解
2016/10/15 Javascript
ES6入门教程之Iterator与for...of循环详解
2017/05/17 Javascript
Layui table 组件的使用之初始化加载数据、数据刷新表格、传参数
2017/09/11 Javascript
JavaScript中错误正确处理方式小结你用对了吗
2017/10/10 Javascript
mui上拉加载更多下拉刷新数据的封装过程
2017/11/03 Javascript
vue弹窗组件使用方法
2018/04/28 Javascript
原生js实现可兼容PC和移动端的拖动滑块功能详解【测试可用】
2019/08/15 Javascript
Vue 集成 PDF.js 实现 PDF 预览和添加水印的步骤
2021/01/22 Vue.js
[41:08]2014 DOTA2国际邀请赛中国区预选赛 HGT VS NE
2014/05/22 DOTA
python共享引用(多个变量引用)示例代码
2013/12/04 Python
详解Python中的装饰器、闭包和functools的教程
2015/04/02 Python
简述Python中的面向对象编程的概念
2015/04/27 Python
Python算术运算符实例详解
2017/05/31 Python
python 3.6 tkinter+urllib+json实现火车车次信息查询功能
2017/12/20 Python
python实现跨excel的工作表sheet之间的复制方法
2018/05/03 Python
在PyCharm中三步完成PyPy解释器的配置的方法
2018/10/29 Python
Python如何读取、写入CSV数据
2020/07/28 Python
css3类选择器之结合元素选择器和多类选择器用法
2017/03/09 HTML / CSS
使用纯 CSS 创作一个脉动 loader效果的源码
2018/09/28 HTML / CSS
SheIn俄罗斯:时尚女装网上商店
2017/02/28 全球购物
美国销售第一的智能手机和平板电脑保护壳:OtterBox
2017/12/21 全球购物
Book Depository亚太地区:一家领先的国际图书零售商
2019/05/05 全球购物
罗马尼亚购物网站:Vivantis.ro
2019/07/20 全球购物
MySQL面试题目集锦
2016/04/14 面试题
《王二小》教学反思
2014/02/27 职场文书
2015年毕业实习工作总结
2014/12/12 职场文书
人民的好儿女观后感
2015/06/18 职场文书
音乐研修感悟
2015/11/18 职场文书
SpringBoot工程下使用OpenFeign的坑及解决
2021/07/02 Java/Android
CentOS 7安装mysql5.7使用XtraBackUp备份工具命令详解
2022/04/12 MySQL