php“exec”调用python脚本.如何从python返回字符串


php `exec` calls python script. how return strings from python?

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

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

以易于解析的格式(如JSON)打印输出,并从PHP进行解析。例如,代替:

print foo
print bar

使用类似的东西

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

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

除了更改python脚本的输出方式之外,您真的对此无能为力。

不过,清除返回的数据确实很容易。

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