PHP调用Python,返回多个值

2024-06-28 11:21:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用php设置一个SOAP服务器。在处理SOAP请求时,我需要调用一些现有的python脚本。这些脚本通常返回3个值:success、description和data。

如何将这三个值全部传递回php?

我的要求是:

exec('python test.py', $output);

test.py可以:

from getData import getData

status, description, data = getData()

return status, description, data

我现有的python如下所示:

def getData():
    database = Database()

    # get all the Data from the db
    data = database.getData()

    if data is None:
        return False, "...notes...", ""

    return True, "...notes...", data

我不确定test.py中的返回是否正确。但即使是这样,当我看到varòu dump($output)时,我看到的只是“Array”

有人有什么想法吗?

蒂亚

布赖恩


Tags: thefrompytest脚本outputdatareturn
1条回答
网友
1楼 · 发布于 2024-06-28 11:21:58

由于exec()调用接收到变量$output的shell输出,因此无法从Python函数接收返回的字符串。您必须打印它们,而不是返回它们,并且每个打印行都将进入exec()数组$output

主脚本必须将值打印到stdout:

from getData import getData
status, description, data = getData()

# Print the values
print("STATUS:", status)
print("DESCRIPTION:", description)
print("DATA:", data)

在PHP中,检查返回的输出:

exec("python test.py", $output);
var_dump($output);

您需要将Python中的print语句格式化为可以轻松解析PHP中的值的格式,例如每行一个值,或者可以explode()的key:value对。

相关问题 更多 >