📜  从 PHP 调用 Python 并获取返回代码 - PHP (1)

📅  最后修改于: 2023-12-03 15:36:14.781000             🧑  作者: Mango

从 PHP 调用 Python 并获取返回代码 - PHP

当你需要在 PHP 项目中执行 Python 代码时,你可以通过 shell 命令或者使用 PHP 的 exec 函数来调用 Python。本文将介绍如何在 PHP 中调用 Python 进程并获取 Python 进程的返回代码。

使用 shell 命令调用 Python

使用 shell 命令调用 Python 是最简单的方式。你只需要在 PHP 中使用 shell_exec 函数执行一个调用 Python 的 shell 命令,并通过命令参数将你的 Python 脚本路径传递给 Python 进程。下面是一个示例代码:

<?php
$python_script = "path/to/your/python/script.py";
$command = "python " . $python_script;
$output = shell_exec($command);

echo "Python process output: " . $output;
?>

在上面的示例代码中,我们通过定义 $python_script 变量来指定我们要调用的 Python 脚本的路径。然后,我们构造了一个 shell 命令,使用 python 命令来调用我们的 Python 脚本,并用 shell_exec 函数执行了这个命令。执行后,我们可以通过 $output 变量来获取 Python 进程的输出内容。

需要注意的是,使用 shell_exec 函数并执行 shell 命令存在一些安全风险,尤其是在接受用户输入的场景下。你应该避免在 shell 命令中使用用户输入数据,或者使用 escapeshellcmd 函数来过滤可能存在的危险字符。

使用 PHP 的 exec 函数调用 Python

使用 PHP 的 exec 函数来调用 Python 脚本也是一种能够获取 Python 进程的返回代码的方法。不同于 shell_exec 函数,exec 函数可以返回一个数组,其中包含所有命令输出的行。下面是一个示例代码:

<?php
$python_script = "path/to/your/python/script.py";
$command = "python " . $python_script;

// 返回所有输出的数组
$output = array();
exec($command, $output);

foreach ($output as $line) {
  echo "Python process output: " . $line . "<br>";
}
?>

在上面的示例代码中,我们使用变量 $output 来存储 Python 进程的所有返回代码。使用 exec 函数时,我们需要将 $output 变量传递给函数做为第二个参数。执行后,我们可以通过遍历 $output 数组来获取 Python 进程的每行输出。

总结

以上是两种在 PHP 中调用 Python 并获取 Python 进程的返回代码的方法。你可以根据自己的需要,选择适合自己的方法。请注意,在使用上述方法时,你需要确保你的 Python 环境已正确配置,并且你的 Python 脚本能够在 Python 环境中被成功执行。