PHP与Python数据交互实战:利用passthru调用脚本

周予安
周予安
发布时间:2026-10-13 | 4人浏览过
原创

本文介绍在TP5项目中PHP与Python进行数据交互的方法。通过PHP的passthru函数调用Python脚本,利用sys.argv获取参数,并通过json.dumps处理多值返回。注意参数间需加空格,且调用前加@可避免Array to string conversion错误,实现高效的数据传递与结果获取。

近期,在一个项目中决定采用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 相关产品和应用

全部下载

专题列表