2017-04-18 33 views
-1

我一直在试图编写代码脚本来检索条目从网上商店使用API​​。使用此代码JSON显示在屏幕上,而不是推送到变量

<?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和能够使用它作为一个变量,如回声$data->url;但不工作。

那么,如何防止显示输出,为什么可以;我转换为一个变量。

编辑

我在评论中提到了RETURNTRANSFER。 当我使用print_r($data);我看到的阵列

阵列([0] => stdClass的对象([数字] => 3172023 [日期] => 2017年4月14日[时间] => 13时46 :51 [status] => 4 [status_changed_date] => 2017-04-17 [status_changed_time] => 21:11:47 [weight] => 150 [finished] => [taxed] => include [locale] => nl_NL [comments] => stdClass对象([customer] =>符合底部杠杆操作 bovengenoemd adres van 295 -100-60 cm,2 mm dik,met rand binnenzijde van 15 cm,cortenstaal plantenbak,zonder bodem。 )[payment] => stdCla

我一直在试图让输出与

foreach ($data['stdClass Object'] as $object) 
{ 
    echo "items:". $object['number'] ."\n"; 
}; 

从而造成

()提供的foreach无效参数

+1

CURL默认输出结果。为了防止输出使用'RETURNTRANSFER'选项。阅读手册有时可以提供帮助。 –

回答

2

正如我在评论中提到,袅袅输出由默认响应。为了防止这种情况,您应该将CURLOPT_RETURNTRANSFER选项设置为true

走得更远 - stdClass Object在你的输出是不是的一个关键。这是一个班的名字。所以,你的数组的第一个元素是stdClassobject

遍历数组是:

foreach ($data as $object) 
{ 
    // `$object` is a stdClass object 
    // accessing object properties is done with `->` 
    echo "items:". $object->number ."\n"; 
}; 

或者你可以json_decode设置为true第二个参数的响应。并且所有项目都是阵列:

json_decode($result, true); 
+0

谢谢,我的意思是CURLOPT_RETURNTRANSFER –

-1

在print_r的和的var_dump的输出,“ stdClass Object'表示数据类型,而不是变量的名称。

尝试使用此代码,而不是

foreach ($data as $object) 
{ 
    echo "items:". $object['number'] ."\n"; 
};