如何使用PHP从cURL获取json

如何使用PHP从cURL获取json

本文介绍了如何使用PHP从cURL获取json的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用php将cURL解码的json解码为:

I'm trying to decode a json obtening by cURL with php like this :

$url = 'https://www.toto.com/api/v1/ads/?apikey=titi&code_postal='.$code_postal.'&type_de_bois='.$type_bois;
$cURL = curl_init();
curl_setopt($cURL, CURLOPT_URL, $url);
curl_setopt($cURL, CURLOPT_HTTPGET, true);
curl_setopt($cURL, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json',
    'Accept: application/json'
));

$result = curl_exec($cURL);
curl_close($cURL);

var_dump(json_decode($result, true));
echo json_decode($result);

那让我回想起,似乎是json:

That returns me that, something which seems to be json :

int(1)1

我的问题是:-为什么在没有回显或打印的情况下打印数组?-为什么json_decode无法正常工作,或者为什么它只是一个值("1")?

My question are :- Why, without echo or print, the array is printed?- Why json_decode doesn't work propely or why it is only one value ("1")?

非常感谢您的回答.

推荐答案

您忘记了使用CURLOPT_RETURNTRANSFER选项.因此,curl_exec()会打印响应,而不是将其返回到$result中,并且$result仅包含TRUE所返回的值TRUE,以指示该响应已成功.添加:

You forgot to use the CURLOPT_RETURNTRANSFER option. So curl_exec() printed the response instead of returning it into $result, and $result just contains the value TRUE that was returned by curl_exec to indicate that it was successful. Add:

curl_setopt($cURL, CURLOPT_RETURNTRANSFER, true);

这篇关于如何使用PHP从cURL获取json的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-25 23:08