PHP中curl响应变量的访问

PHP中curl响应变量的访问,php,json,curl,Php,Json,Curl,这是我第一次使用curl,我很困惑$response的格式到底是怎样的,以及我如何访问我想要的信息。我试图从PHP中的curl响应中访问一个特定变量,以便在将来的条件语句中使用。我得到了用作API端点的URL和头,因此无法更改该端点上的任何内容。下面是curl响应的代码: $ch = curl_init(); $url = "https://thewebsitesurl.com"; curl_setopt($ch, CURLOPT_URL, $url); cur

这是我第一次使用curl,我很困惑$response的格式到底是怎样的,以及我如何访问我想要的信息。我试图从PHP中的curl响应中访问一个特定变量,以便在将来的条件语句中使用。我得到了用作API端点的URL和头,因此无法更改该端点上的任何内容。下面是curl响应的代码:

    $ch = curl_init();

    $url = "https://thewebsitesurl.com";
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'x-branch: 21', 
    'x-branchhash: fijef89ivjw8934y8f9fifk920a',
    'accept: application/json'
    ));

    $response = curl_exec($ch);`
var_dump($response)的内容产生:

string(187) "{"code":"5122","time":"1589812650","voucher":{"code":"5122","comments":"","amount":"11.00","balance":"11.00","created":"1589609333","expiry":"1652616000","redeemed":false,"voided":false}}"
我需要访问“已赎回”和“已作废”字段。当然,这是一个大的长字符串意味着我不能这样做(我相信)。我是否应该设置一个CURLOPT,以使响应不会作为一个大字符串接收

如果我用$data=var_dump(json_decode($result,true))对其进行解码,则更进一步;内容包括:

array(3) { ["code"]=> string(4) "5122" ["time"]=> string(10) "1589814039" ["voucher"]=> array(8) { ["code"]=> string(4) "5122" ["comments"]=> string(0) "" ["amount"]=> string(5) "11.00" ["balance"]=> string(5) "11.00" ["created"]=> string(10) "1589609333" ["expiry"]=> string(10) "1652616000" ["redeemed"]=> bool(false) ["voided"]=> bool(false) } }
对我来说,这似乎比一根长绳子更可行。但是,我很难访问[“到期”]、[“赎回”]和[“作废”]变量。事实上,我很难访问我尝试过的[“代码”]字符串“5122”:

echo $data[0]['code'];
echo $data[0]["code"];
echo $data['code'];
echo $data["code"];
所有4个回声都是空白的,我试着去掉“curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);“也是。之后的var_dump($result);看起来像:

 {"code":"5122","time":"1589815247","voucher":{"code":"5122","comments":"","amount":"11.00","balance":"11.00","created":"1589609333","expiry":"1652616000","redeemed":false,"voided":false}}bool(true)
我可能误解了这里的一些基本内容。但是,如果我能够访问[“到期”]、[“赎回”]和[“作废”]中的值,我们将不胜感激。谢谢你的帮助

$data = json_decode($result, true);
这将返回一个数组

$data = json_decode($result);
这将返回一个对象

不要在这里面使用
var\u dump
,因为它是一个解析函数,只用于转储数据。因此,最终结果应该是:

$data = json_decode($result, true);
$code = $data['code']; // " or ' are not different in this case
这将返回一个数组

$data = json_decode($result);
这将返回一个对象

不要在这里面使用
var\u dump
,因为它是一个解析函数,只用于转储数据。因此,最终结果应该是:

$data = json_decode($result, true);
$code = $data['code']; // " or ' are not different in this case

$data=var\u dump
var\u dump
的结果分配给
$data
而不是
json\u decode
。您从哪里获得
0
?只是
echo$data['code']
echo$data['凭证]['expiration']等。
$data=var\u dump
var\u dump
的结果分配给
$data
而不是
json\u decode
。您从哪里获得
0
?只是
echo$data['code']
echo$data['凭证]['expiration']等。。。