2017-04-18 39 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"; 
};