PHP调用Python常用函数有哪些 高频调用Python的PHP函数盘点

来源:AI编程作者:马来西亚程序员头衔:程序员
导读:本期聚焦于小伙伴创作的《PHP调用Python常用函数有哪些 高频调用Python的PHP函数盘点》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《PHP调用Python常用函数有哪些 高频调用Python的PHP函数盘点》有用,将其分享出去将是对创作者最好的鼓励。

在PHP项目开发过程中,经常会遇到需要借助Python处理数据分析、机器学习推理、复杂文本处理等场景,此时就需要通过PHP调用Python脚本。PHP提供了多个可用于执行外部程序的函数,其中不少是调用Python时的高频选择,下面逐一介绍这些常用函数。

PHP调用Python常用函数有哪些 高频调用Python的PHP函数盘点

1. exec函数

exec是PHP中执行外部命令的常用函数,它会执行指定的命令,并且可以获取命令执行后的输出结果。调用Python脚本时,我们可以通过该函数获取Python脚本打印到标准输出的内容。

函数基本语法:

<?php
/**
 * exec函数语法
 * @param string $command 要执行的命令
 * @param array $output 可选,用于接收命令输出的数组
 * @param int $return_var 可选,用于接收命令的退出状态码
 * @return string 命令输出的最后一行内容
 */
exec($command, $output, $return_var);
?>

调用Python脚本的示例:

<?php
// 要执行的Python命令,调用test.py脚本,传入参数hello
$command = "python test.py hello";
// 存储输出结果
$output = [];
// 存储退出状态码
$returnCode = 0;
// 执行命令
$lastLine = exec($command, $output, $returnCode);
echo "最后一行输出:" . $lastLine . "<br/>";
echo "全部输出:<br/>";
foreach ($output as $line) {
    echo $line . "<br/>";
}
echo "退出状态码:" . $returnCode;
?>

对应的Python脚本test.py内容:

import sys

# 获取传入的参数
param = sys.argv[1] if len(sys.argv) > 1 else "default"
print(f"接收到的参数:{param}")
print("Python脚本执行完成")
# 正常退出
sys.exit(0)

2. shell_exec函数

shell_exec函数通过shell环境执行命令,并且会返回命令执行的全部输出内容,和exec不同,它直接返回所有输出字符串,不需要额外定义数组接收。

函数基本语法:

<?php
/**
 * shell_exec函数语法
 * @param string $cmd 要执行的命令
 * @return string|null 命令的全部输出内容,执行失败返回null
 */
shell_exec($cmd);
?>

调用Python脚本的示例:

<?php
// 执行Python脚本,获取全部输出
$result = shell_exec("python calc.py 3 5");
echo "Python脚本输出结果:<br/>";
echo $result;
?>

对应的Python脚本calc.py内容:

import sys

# 获取两个传入的数值参数
num1 = float(sys.argv[1]) if len(sys.argv) > 1 else 0
num2 = float(sys.argv[2]) if len(sys.argv) > 2 else 0
# 计算求和
sum_result = num1 + num2
print(f"两个数字的和为:{sum_result}")

3. system函数

system函数会执行外部命令,并且直接将命令的输出打印到标准输出,同时也会返回输出的最后一行内容。如果不需要捕获输出,只需要执行脚本并直接展示结果,这个函数比较合适。

函数基本语法:

<?php
/**
 * system函数语法
 * @param string $command 要执行的命令
 * @param int $return_var 可选,接收命令退出状态码
 * @return string|false 命令最后一行输出,失败返回false
 */
system($command, $return_var);
?>

调用Python脚本的示例:

<?php
// 执行Python脚本,输出会直接打印
echo "执行Python脚本结果:<br/>";
$returnCode = 0;
system("python print_info.py", $returnCode);
echo "脚本退出状态码:" . $returnCode;
?>

对应的Python脚本print_info.py内容:

print("这是Python脚本的输出内容")
print("当前脚本执行正常")

4. popen函数

popen函数会打开一个指向进程的管道,可以通过这个管道读取命令的输出或者向命令输入内容,适合需要双向交互的场景,比如需要向Python脚本动态传入多行输入的情况。

函数基本语法:

<?php
/**
 * popen函数语法
 * @param string $command 要执行的命令
 * @param string $mode 打开模式,r为读,w为写
 * @return resource|false 返回管道资源,失败返回false
 */
popen($command, $mode);
?>

调用Python脚本读取输出的示例:

<?php
// 打开管道,读取Python脚本的输出
$handle = popen("python read_input.py", "r");
if ($handle) {
    // 读取管道中的全部内容
    $content = stream_get_contents($handle);
    pclose($handle);
    echo "从Python脚本读取的内容:<br/>";
    echo $content;
}
?>

对应的Python脚本read_input.py内容:

print("第一行输出内容")
print("第二行输出内容")
print("脚本执行结束")

函数选择建议

  • 如果需要获取全部输出内容,优先选择shell_exec,使用更简洁
  • 如果需要同时获取输出内容和退出状态码,选择exec更合适
  • 如果只需要直接输出执行结果,不需要额外处理输出内容,选择system
  • 如果需要和Python脚本进行双向交互,或者处理大量输出内容,选择popen

使用这些函数调用Python时,需要注意PHP的运行环境是否有权限执行Python命令,同时要避免传入未过滤的用户参数,防止命令注入风险。

PHPPythonexecshell_execpopen修改时间:2026-07-06 16:54:14

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。