我一直试图编写代码来使用API从网上商店检索条目。使用此代码
<?php
$ch = curl_init('https://api.mijnwebwinkel.nl/v1/orders?language=nl_NL&limit=10&start_date=2017-04-10&end_date=2017-04-20&format=json&ordering=asc&partner_token=xxx&token=xxx');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($ch, CURLOPT_TIMEOUT, 50);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
// execute post
$result = curl_exec($ch);
// close connection
curl_close($ch);
?>
我将结果直接打印在屏幕上,我真的不知道为什么会这样,因为没有代码可以执行此操作。
通常我使用$data = json_decode($result);
转换json并能够将其用作echo $data->url;
之类的变量,但这不起作用。
那么如何防止显示输出以及为什么可以;我转换为变量。
修改
我在评论中提到了RETURNTRANSFER。
当我使用print_r($data);
时,我看到一个数组
数组([0] =&gt; stdClass对象([数字] =&gt; 3172023 [日期] =&gt; 2017-04-14 [时间] =&gt; 13:46:51 [status] =&gt; 4 [status_changed_date] =&gt; 2017-04-17 [status_changed_time] =&gt; 21:11:47 [重量] =&gt; 150 [完成] =&gt; [taxed] =&gt; include [locale] =&gt; nl_NL [评论] =&gt; stdClass对象([customer] =&gt;符合afspraak杠杆操作 bovengenoemd adres van 295 -100-60 cm,2 mm dik,met rand binnenzijde 面包车15厘米,cortenstaal plantenbak,zonder bodem。 )[付款] =&gt; stdCla
我一直试图用
获得输出foreach ($data['stdClass Object'] as $object)
{
echo "items:". $object['number'] ."\n";
};
导致
为foreach()提供的参数无效
答案 0 :(得分:2)
正如我在评论中提到的,cURL默认输出响应。为防止出现这种情况,您应将CURLOPT_RETURNTRANSFER
选项设置为true
。
更进一步 - 输出中的stdClass Object
不一个键。它是一个班级的名字。因此,数组的第一个元素是类object
的{{1}}。
迭代数组是:
stdClass
或者您可以foreach ($data as $object)
{
// `$object` is a stdClass object
// accessing object properties is done with `->`
echo "items:". $object->number ."\n";
};
将第二个参数设置为json_decode
时的回复。所有项目都是数组:
true
答案 1 :(得分:-1)
在print_r和var_dump的输出中,&#39; stdClass对象&#39;表示数据类型,而不是变量的名称。
尝试使用此代码
{{1}}