PHP处理CURL返回JSON:移除响应头并提取姓名字段
解决CURL响应头输出问题并提取用户姓名字段
修改后的完整代码
$url = "https://randomuser.me/api/"; $curl = curl_init($url); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); $headers = array( "X-Custom-Header: header-value", "Content-Type: application/json" ); curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); // 关闭响应头输出,只获取响应体 curl_setopt($curl, CURLOPT_HEADER, false); $response = curl_exec($curl); curl_close($curl); // 解析JSON响应并提取姓名 $userData = json_decode($response, true); if ($userData && isset($userData['results'][0]['name'])) { $firstName = $userData['results'][0]['name']['first']; $lastName = $userData['results'][0]['name']['last']; echo "用户姓名:{$firstName} {$lastName}"; } else { echo "获取用户数据失败"; }
关键修改说明
- 移除HTTP响应头:原代码中
CURLOPT_HEADER被设置为true,这会让CURL把HTTP响应头和响应体一并返回。将其改为false后,curl_exec只会返回接口的JSON响应体,不再包含头信息。 - 提取姓名字段:
- 用
json_decode($response, true)将JSON字符串转为关联数组,第二个参数设为true确保返回数组而非对象。 - 接口返回的用户数据存于
results数组的第一个元素中,通过$userData['results'][0]['name']['first']和$userData['results'][0]['name']['last']即可分别提取名和姓。 - 增加了基础的异常判断,避免接口返回格式异常时出现报错。
- 用
内容的提问来源于stack exchange,提问作者Isaac
相关产品推荐
相关产品推荐

