php`exec`调用python脚本。如何从python返回字符串?

时间:2012-09-10 18:08:27

标签: php python

我使用PHP脚本中的exec函数调用python脚本。 Python在PHP脚本中写入标准输出两个字符串。问题是,在这些字符串中可能是行尾字符\n(因此正式输出中有许多行),并且根据exec manual数组$output将包含 其中的每一行。什么是转义\n字符的优雅方式,以便$output只包含我想要的两个字符串,并且不需要对这两个字符串进行后期处理?

编辑:我可以更改python脚本。

2 个答案:

答案 0 :(得分:2)

除了改变python脚本输出方式之外,你真的无能为力。

虽然很容易清理返回的数据。

exec('yourcommand', $array);
array_walk($array, function($value, $key) {
    return trim($value);
});

答案 1 :(得分:2)

以易于分析的格式打印输出,例如JSON,并从PHP解析它。例如,而不是:

print foo
print bar

使用类似:

import json
print json.dumps([foo, bar])

您阅读PHP的JSON输出格式并使用json_decode($output)将其解码为所需的数组。