php调用python获取返回值_PHP 调用 Python 代码教程,向 Python 传参 + 接收返回值

今天将老板一个项目的服务器代码语言从 Java 改成了 PHP,因为算法是用 Python 写的,所以就需要在 PHP 中调用 Python 脚本,包括向 Python 传参,Python 接收参数后处理数据,再把处理结果传回给 PHP,最后 PHP 返回给客户端。在 PHP 中使用的工具是 exec 调用的 Python 脚本,本文记录下使用教程。

一、在 php.ini 中开启 exec

出于安全考虑,PHP 的 exec 命令默认是关闭的,所以我们首先需要开启 exec。

如果你也使用的是 LNMP 一键安装包,那么 php.ini 路径是在 /usr/local/php/etc 下,编辑 php.ini,在 disable_functions 后面将 exec 删了即可,之后用 lnmp php-fpm restart 重启 PHP 服务。

这里首先放一下我的调用代码,之后再逐一介绍参数:

exec("python3 /home/wwwroot/*******/SeeAir/Main.py {$lat} {$lng} {$folder_path} {$image_name}", $out, $res);

exec 一共有 3 个参数,即exec ( string $command [, array &$output [, int &$return_var ]] ),在 $command 中完成从 PHP 向 Python 的传参,Python 对 PHP 的返回值则存在 $output 中:

第一个参数就是调用 Python 代码的命令行命令,跟我们直接在命令行调用 Python 一样。以我的调用代码为例,我一共向 Python 传递了 4 个参数,$lat、$lng、$folder_path、$image_name 都是 PHP 变量,也是 Python 代码中需要用到的变量;

第二个参数就是 Python 运行过程全部的输出,例如所有 print 的数值都会存在 $out 中,而 $out 是一个数组,如果我只需要 $out 最后一个输出,那么就可以借助 end 函数:$value = end($out);

第三个参数 $res 返回是否调用成功,0 代表成功,1 代表失败。

以上就是老王这次在 PHP 调用 Python 脚本的全部过程,总的来说还是比较方便的,跟命令行直接用 Python 脚本差不多。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值