php - 从 curl 结果中获取一个值
问题描述
我正在尝试从结果中获取 ID。如何只打印身份证?
我已经尝试过decode $resp
,但似乎是array
.
//API Url
$url = 'https://api.clover.com:443/v3/merchants/'.$merchantid.'/orders/';
//Initiate cURL.
$ch = curl_init($url);
//The JSON data.
$jsonData = array(
'state' => 'open',
'title' => '0010-W'
);
$headers = array(
'Content-type: application/json',
'Authorization: Bearer '.$authtoken.' ',
);
//Encode the array into JSON.
$jsonDataEncoded = json_encode($jsonData);
//Tell cURL that we want to send a POST request.
curl_setopt($ch, CURLOPT_POST, 1);
//Attach our encoded JSON string to the POST fields.
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonDataEncoded);
//Set the content type to application/json
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //<=====This was missing.
curl_setopt($ch, CURLOPT_HEADER, false);
$resp = curl_exec($ch);
$data = json_decode($resp, true);
echo 'ID: '.$data['id'];
{
"href": "https://www.clover.com/v3/merchants/***/orders/D4MHB7M5D0P86",
"id": "D4MHB7M5D0P86",
"currency": "USD",
"title": "0010-W",
"taxRemoved": false,
"isVat": false,
"state": "open",
"manualTransaction": false,
"groupLineItems": true,
"testMode": false,
"createdTime": 1553976014000,
"clientCreatedTime": 1553976014000,
"modifiedTime": 1553976014000
}
我希望得到 ID,但我得到空结果。
提到重复的问题是解释不同的东西而不是 cURL 数据。
已解决 - 使用答案编辑的问题。CURLOPT_RETURNTRANSFER 需要设置才能打印数据。经过测试并完美运行。
解决方案
推荐阅读
- c++ - 如何在 C++ 中同时使用 `fstream` 写入和读取文件?
- node.js - node-storage 在创建新存储之前关闭存储并保存更改
- reactjs - 无法读取未定义的属性“历史” - React Router
- java - ImportError:在 Netbeans 中执行 python 代码时没有命名模块
- c# - 如何在 WPF 中设置静态 Bing 地图?
- ansible - 将一组任务委托给另一个依赖条件的主机
- php - Laravel 5.5:是否有适用于所有 Eloquent 模型的 Global Mutator 之类的东西?
- python - 使用 np.where 循环遍历多个数组
- r - 在 R 上创建面板数据集
- java - 添加 while 循环后程序/GUI 冻结