PHP与Python数据交互实战:利用passthru调用脚本
本文介绍在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'
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













