PHP与Python进行数据交互

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

思路

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

实现

在PHP中调用命令运行Python脚本


1

2

3

4

5

6

//php.php

<?php

$params = "value"; #传递给python脚本的入口参数 

$path="python python.py "; //需要注意的是:末尾要加一个空格

passthru($path.$params);//等同于命令`python python.py 参数`,并接收打印出来的信息

?>

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

在Python中接收PHP传入的参数

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


1

2

3

4

//python.py

import sys 

params = sys.argv[1] #即为获取到的PHP传入python的入口参数

print(params);

若在Python中接收多个参数


1

params = sys.argv[1:]

从Python中返回参数

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


1

2

3

4

5

import sys

import json

params = (‘Google‘, ‘Runoob‘, 1997, 2000);

json_str =json.dumps(params);

print(json_str);

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


1

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

效果

运行调用Python脚本的PHP文件,浏览器中输出值为Python打印的值。

原文地址:https://www.cnblogs.com/heyue0117/p/11809092.html

时间: 2024-10-13 12:09:59

PHP与Python进行数据交互的相关文章

Python脚本调用C#代码数据交互示例(hello world)

原地址: http://www.djangochina.cn/forum.php?mod=viewthread&tid=247 随着项目的逐渐收尾, 对IronPython脚本也越来越熟悉,这里为IronPython脚本感兴趣但不入门的朋友写几篇使用心得,这是第一个:最简单的hello world程序.        首先,我们必须有一个IronPython脚本引擎库(IronPython.dll),我用的版本是V1.0,你可以在网上直接下到相关源码,编译后即生成IronPython.dll.1

X-Plane数据交互

要用X-Plane进行二次开发,免不了需要进行参数的传递,下面我们来看看与X-Plane进行数据交互都有哪些方式 一.X-Plane原生支持的通信方式 1.通过Plugin进行数据交互 2.通过UDP进行通信 XXXX\X-Plane 10\Instructions\Sending Data to X-Plane.rtf目录下TXT.rtf 文档. 二.第三方通信工具 1.GitHub上的开源项目 1)NASA的X-Plane Connect(https://github.com/nasa/XP

二十、Python与Mysql交互

先安装一个python与MySQL交互的包:MySQL-python $ gunzip MySQL-python-1.2.2.tar.gz $ tar -xvf MySQL-python-1.2.2.tar $ cd MySQL-python-1.2.2 $ python setup.py build $ python setup.py install ========================================================================

AJAX+REA实现前后台数据交互的加密解密

AJAX+REA实现前后台数据交互的加密解密 1.创建js文件Encryption.js /**  * 加密解密  */ /** RSA加密用 生成key */ function bodyRSA(){ /** 1024位的key参数写130,2014位的key参数写260 */ setMaxDigits(130); /** ajax 调用后台方法,取回公钥 */ var keyR ;     $.ajax({      url: "/GHGL/Key/pk",//请求后台的url,本例

Python模拟数据工具哪些比较好用

今天给大家推荐两款基本的Python模拟数据工具:mock和pytest monkeypatch. 为什么要模拟数据? 我们的应用中有一些部分需要依赖外部的库或对象.为了隔离开这部分,我们需要代替这些外部依赖,因而就用到了模拟数据.我们模拟外部的API来产生特定的行为,比如说返回符合之前定义的恰当的返回值. 模拟函数 我们有一个function.py的模块: 然后我们来看下如何将其与Mock库结合使用的: 这里发生了什么?1-4行是为了兼容python 2和3来引入的代码,在python 3中m

浅谈混合开发与Android,JS数据交互

本文是作者原创,如转载请注明出处! 一.概论 现在时代已经走过了移动互联网的超级火爆阶段,市场上移动开发人员已经趋于饱和,显然,只会原生APP的开发已不能满足市场的需求,随着H5的兴起与火爆,H5在原生APP中的使用越来越广泛,也就是我们常说的混合开发(Hybrid APP).最新很火的微信小程序相信大家都是知道的,实际上微信小程序加载的界面就是一个HTML5的界面,HTML5界面在一些电商类的APP中主要承担展示数据的作用,但是他的作用并不仅限于此,最起码js调用原生方法和原生调用js的方法是

Struts2基本使用(三)--数据交互

Struts2中的数据交互 在Struts2中我们不必再使用request.getParameter()这种方式来获取前台发送到服务器的参数. 我们可以在服务器端的Java类中直接声明一个和前台发送数据的同名变量即可,然后生成它的set/get方法即可以实现前后台数据的交互. 假如我们在前台页面中的表单如下: <form method="post" action="demo!register.action"> username:<input typ

JavaScript模板引擎实现数据交互

经过1年的磨练,近期终于稍微明白到,前端是怎么做到企业要求的:数据交互. 1,ajax+json这个是必须学的,但没问题,我们可以通过这个博客来慢慢了解怎么回事? 2,可以通过JS框架和JS模板来实现,但最后还是要用到ajax+json的. 注意:个人建议 假如项目页面数量是少于50-100个的,那么推荐使用JS模板:如果大于100个的用JS框架.各有各优势嘛. 今晚的博客分几次写完,看到这句话删除就证明已经写完了. 先分享JS模板的内容:我这次推荐使用百度的模板引擎,因为他比腾讯的art运行速

ASP.NET MVC 4 中的JSON数据交互

前台Ajax请求很多时候需要从后台获取JSON格式数据,一般有以下方式: 拼接字符串 return Content("{\"id\":\"1\",\"name\":\"A\"}"); 为了严格符合Json数据格式,对双引号进行了转义. 使用JavaScriptSerialize.Serialize()方法将对象序列化为JSON格式的字符串 MSDN 例如我们有一个匿名对象: var tempObj=new