2014-05-03 27 views
0

我一直在爲我的項目工作,只是爲了學習更多關於PHP和JSON處理的知識。我現在使用Fanart.tv API,並按需要啓動並運行所有內容,但遇到了一些問題。我想在JSON文件中獲得FIRST數組,但我迄今爲止嘗試過的所有內容都無法實現。JSON的第一個元素(fanart.tv API)

任何人都想幫助我嗎? 這是我正在嘗試使用的JSON文件;

{"Eminem":{"mbid_id":"b95ce3ff-3d05-4e87-9e01-c97b66af13d4","artistbackground":[{"id":"14795","url":"http://assets.fanart.tv/fanart/music/b95ce3ff-3d05-4e87-9e01-c97b66af13d4/artistbackground/eminem-4ed3e35d6f3da.jpg","likes":"3"} 

這是我的代碼從我的PHP文件,實際工作;

$img = $json->Eminem->artistbackground[0]->url; 

但是,我想打印圖像並回顯藝術家的名字 - 在這種情況下是「Eminem」。我試過用「$ json [0]」和「[0]」,但是我只是得到錯誤信息。任何人都知道如何做到這一點,閱讀JSON文件?我得到的腳本自動更新了MusicBrainz的URL($ mbid)中的ID,因此如果它是另一位藝術家而不是Eminem,我讀取了JSON文件 - 我的代碼無法工作。

這是我到目前爲止的PHP代碼;

$backgroundURL = 'http://api.fanart.tv/webservice/artist/a93e666f14a34d979b3e3617eab2f340/'.$mbid.'/json/artistbackground/1/1'; 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $backgroundURL); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (compatible; curl)"); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
$json = curl_exec($ch); 
curl_close($ch); 

$json = json_decode($json); 
$bg = $json->Eminem->artistbackground[0]->url; 

echo '<img src="'.$bg.'" height="540" width="960">' 

只要JSON文件用於藝術家Eminem,它就可以工作。只要我得到另一個藝術家,它不會,所以我需要$ bg字符串中的JSON文件中的第一個元素。

任何人都知道如何做到這一點? 感謝您的幫助!

回答

0

current()函數返回當前鍵的值(第一):

$json = json_decode($json); 
$first = current($json); 
$bg = $first->artistbackground[0]->url; 
相關問題