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

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

本文介绍在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 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。