Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用PHP从cURL获取json_Php_Json_Curl - Fatal编程技术网

如何使用PHP从cURL获取json

如何使用PHP从cURL获取json,php,json,curl,Php,Json,Curl,我尝试用php通过cURL解码json,如下所示: $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

我尝试用php通过cURL解码json,如下所示:

$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的结果:

[{“id”:“6918”,“nom”:“X”,“code_postal”:“88120”,“ville”:“town”,“description”:“test”,“logo”:“test.png”,“url”:“test”,“telephone”:true}, [{“id”:“6919”,“nom”:“Y”,“code_postal”:“88121”,“ville”:“town1”,“description”:“test”,“logo”:“test.png”,“url”:“test”,“telephone”:true}, [{“id”:“6920”,“nom”:“Z”,“code_postal”:“88122”,“ville”:“town2”,“description”:“test”,“logo”:“test.png”,“url”:“test”,“telephone”:true}]

int(1)1

我的问题是: -为什么在没有回声或打印的情况下打印阵列? -为什么json_解码不能正常工作,或者为什么它只有一个值(“1”)


非常感谢您的回答。

如果在使用once json_decode()之后,结果是一个json字符串,那么json数据似乎被编码了两次

请检查以下内容:

echo json_decode(json_decode($result));
如果它不起作用,你能提供

echo $result; 

要查看未经PHP解析的服务器响应。

如果在使用once json_decode()后,结果是一个json字符串,则json数据似乎被编码了两次

请检查以下内容:

echo json_decode(json_decode($result));
如果它不起作用,你能提供

echo $result; 

查看未经PHP解析的服务器响应。

您忘记使用
CURLOPT\u RETURNTRANSFER
选项。因此
curl\u exec()
打印响应,而不是将其返回到
$result
,而
$result
仅包含
curl\u exec
返回的值
TRUE
,以指示响应成功。添加:

curl_setopt($cURL, CURLOPT_RETURNTRANSFER, true);

您忘记使用
CURLOPT\u RETURNTRANSFER
选项。因此
curl\u exec()
打印响应,而不是将其返回到
$result
,并且
$result
仅包含
curl\u exec
返回的值
TRUE
,以指示响应成功。添加:

curl_setopt($cURL, CURLOPT_RETURNTRANSFER, true);
var_dump()将在数组中显示结果var_dump()将在数组中显示结果