从包含其他文本

时间:2017-09-20 13:37:37

标签: php json

我遇到的问题是我正在使用的API,在响应中有简单的文本和json对象,这是我可以有什么样的响应:

--uuid:ea9ca368-2f73-4669-aa94-028293937jhg
Content-Type: application/json;charset=UTF-8
Content-Transfer-Encoding: binary
Content-ID: <jsonInfos>

{"messages":[{"id":"30008","type":"OK","messageContent":"Some data..."}],"labelXmlReponse":"data","labelResponse":"data"}
--uuid:ea9ca368-2f73-4669-aa94-028293937jhg--

我只需要检索json对象。由于json之前和之后的文本,我无法对响应做json_decode()。 我尝试使用正则表达式来捕获括号内的所有内容:

preg_match("/(\{(.*?)\})/", $res_curl, $output_array);

但这不起作用,因为它以第一个结束括号结束。

如何从响应中捕获json?

修改

正如评论中所说,这是我的调用代码,我正在使用cURL:

$ch = curl_init($url.$action);
curl_setopt( $ch, CURLOPT_POSTFIELDS, json_encode($requestParameter) );
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt($ch, CURLOPT_HEADER, false);
$res_curl = curl_exec($ch);

1 个答案:

答案 0 :(得分:1)

你在使用cURL吗?只需将CURLOPT_HEADER设置为false。