代码之家  ›  专栏  ›  技术社区  ›  Mrugesh

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

php
  •  0
  • Mrugesh  · 技术社区  · 6 年前

    $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 回复  |  直到 6 年前
        1
  •  1
  •   Nikita Leshchev    6 年前

    你必须用 json_decode :

    $response = json_decode($response, true);

    现在你可以使用 $response

        2
  •  1
  •   Ray A    6 年前

    你需要先解码,检查我的代码:

    $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);
    }