我使用exec
从 PHP 脚本调用 python 脚本的函数。Python 将我在 PHP 脚本中需要的两个字符串写入标准输出。问题是在这些字符串中可能是行尾字符\n
(因此正式输出中有很多行),并且根据exec
手动数组$output
将包含其中的每一行。什么是转义\n
字符的优雅方法,以便$output
只包含我想要的两个字符串并且不需要对这两个字符串进行后期处理?
编辑:我可以更改 python 脚本。
除了改变 python 脚本的输出方式之外,你真的无能为力。
不过,清理返回的数据真的很容易。
exec('yourcommand', $array);
array_walk($array, function($value, $key) {
return trim($value);
});
以易于解析的格式(例如 JSON)打印输出,并从 PHP 解析它。例如,而不是:
print foo
print bar
使用类似的东西:
import json
print json.dumps([foo, bar])
您从 PHP 中读取 JSON 输出并将其解码json_decode($output)
为所需的数组。