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