curl_exec无法识别json字符串并导致api崩溃

时间:2018-08-12 13:52:14

标签: php

我的代码如下所示:

$response = curl_exec($curl);
echo $response;
$err = curl_error($curl);

curl_close($curl);

if ($response['status'] == 200) { 
  echo '<img style="text-align:center"; src="./check-successful.gif" width="100" /><br/><p>Please close the browser</p>';
    sleep(2);
} 
else {
    echo '<img style="text-align:center"; src="./icn-failed-1.gif" width="100" /><br/><p>Please close the browser</p>';
    sleep(2);
}

这里echo给了我这个输出:

{"status":"200","message":"Your test message"}

但是以某种方式,if($response['status'])不能识别它,而仅将其放入else语句。

2 个答案:

答案 0 :(得分:1)

您必须使用json_decode解码此响应:

$response = json_decode($response, true);

现在您可以将$response用作数组

答案 1 :(得分:1)

您需要先对其进行解码,然后检查我的代码:

$response = curl_exec($curl);
echo $response;
$decodedResponse = json_decode($response, true);
$err = curl_error($curl);

curl_close($curl);

if ($decodedResponse['status'] == 200) { 
  echo '<img style="text-align:center"; src="./check-successful.gif" width="100" /><br/><p>Please close the browser</p>';
    sleep(2);
} 
else {
    echo '<img style="text-align:center"; src="./icn-failed-1.gif" width="100" /><br/><p>Please close the browser</p>';
    sleep(2);
}

现在一切都很好。