tiger-sms ChatGPT 账号/ChatGPT 代注册 OpenAI API 代充值

PHP 调用 Python 代码教程,向 Python 传参 + 接收返回值

OpenAI API key

今天将老板一个项目的服务器代码语言从 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 服务。

二、PHP 调用 Python 教程

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

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 中:

  1. 第一个参数就是调用 Python 代码的命令行命令,跟我们直接在命令行调用 Python 一样。以我的调用代码为例,我一共向 Python 传递了 4 个参数,$lat、$lng、$folder_path、$image_name 都是 PHP 变量,也是 Python 代码中需要用到的变量;
  2. 第二个参数就是 Python 运行过程全部的输出,例如所有 print 的数值都会存在 $out 中,而 $out 是一个数组,如果我只需要 $out 最后一个输出,那么就可以借助 end 函数:$value = end($out);
  3. 第三个参数 $res 返回是否调用成功,0 代表成功,1 代表失败。

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

赞(4)
关注我们
未经允许不得转载:老王博客 » PHP 调用 Python 代码教程,向 Python 传参 + 接收返回值