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

12 投票
2 回答
26447 浏览
提问于 2025-04-15 22:06

我在用PHP调用一个Python脚本。

这个Python程序需要根据传给它的参数返回一些值。

下面是一个示例Python程序,可以让你大致了解我现在在做什么:

#!/usr/bin/python
import sys

#get the arguments passed
argList = sys.argv

#Not enough arguments. Exit with a value of 1.
if len(argList) < 3:
    #Return with a value of 1.
    sys.exit(1)

arg1 = argList[1]
arg2 = argList[2]

#Check arguments. Exit with the appropriate value.
if len(arg1) > 255:
    #Exit with a value of 4.
    sys.exit(4)
if len(arg2) < 2:
    #Exit with a value of 8.
    sys.exit(8)

#Do further coding using the arguments------

#If program works successfully, exit with a value of 0

从上面的代码可以看出,我的基本目标是:

  1. 让Python程序根据参数返回一些值(比如0、1、4、8等等)。
  2. 然后让调用的PHP程序获取这些返回的值,并进行相应的操作。

目前我使用了“sys.exit(n)”来实现这个目的。

我这样使用sys.exit对吗?还是说我需要用其他方法?

另外,PHP中有什么方法可以获取Python的返回代码呢?

抱歉问题有点长,但希望能帮助你理解我的困惑。

非常感谢!

2 个回答

0

你说得对,exit()的用法是正确的。你可以查看这个链接了解更多信息:http://docs.python.org/library/sys.html

15

在PHP中,你可以执行一个命令并获取返回的状态码,这个功能是通过 exec 来实现的。

exec手册中提到,第三个参数是一个变量,用来存储返回的状态码,比如说:

exec('python blibble.py', $output, $ret_code);

$ret_code 将会是命令的返回状态码,而 $output 是一个数组,里面存储着输出的每一行文本。

根据你描述的情况,使用返回状态码是合适的,也就是说,返回0表示成功,而大于0的数字则表示不同类型的错误。

撰写回答