2017-11-18 9 views
0

はので、私は情報が私のPHPコードでは、このは、私が使用

{"topartists":{"artist":[{"name":"Bee Gees","mbid":"bf0f7e29-dfe1-416c-b5c6-f9ebc19ea810","url":"https://www.last.fm/music/Bee+Gees","streamable":"0","image":[{"#text":"https://lastfm-img2.akamaized.net/i/u/34s/1df682d5ba6e45db843c45a336170470.png","size":"small"},{"#text":"https://lastfm-img2.akamaized.net/i/u/64s/1df682d5ba6e45db843c45a336170470.png","size":"medium"},{"#text":"https://lastfm-img2.akamaized.net/i/u/174s/1df682d5ba6e45db843c45a336170470.png","size":"large"},{"#text":"https://lastfm-img2.akamaized.net/i/u/300x300/1df682d5ba6e45db843c45a336170470.png","size":"extralarge"},{"#text":"https://lastfm-img2.akamaized.net/i/u/300x300/1df682d5ba6e45db843c45a336170470.png","size":"mega"}],"@attr":{"rank":"1"}} 

のように見える最後のFM APIに接続していアーティスト画像から除いたすべての情報を取得することができます

 class LastFm{ 

    private $api_key; 
    const url = 'http://ws.audioscrobbler.com/2.0/'; 

    function __construct($api_key){ 
     $this->api_key = $api_key; 
    } 

    function call($method,$params=array()){ 
     $lastfm = self::url.'?method='.$method.'&format=json&api_key='.$this->api_key; 
     foreach($params as $key => $value){ 
      $lastfm .= '&'.$key.'='.urlencode($value); 
     } 
     $json = file_get_contents($lastfm); 
     return json_decode($json, true); 
    } 

} 

?> 
<?php 

$lastfm = new LastFm('63692beaaf8ba794a541bca291234cd3'); 




$tracks = $lastfm->call('tag.gettopartists&tag=disco'); 
foreach($tracks['topartists']['artist'] as $track){ 


?> 

アーティスト名を正常に返します。しかし、どのように私は中規模の画像を取得するのですか?私は試しました -

`echo $artist['image'];` 

何も返されません。

+0

ルックスの新しい配列を移入します'image'はオブジェクトの配列です。あなたは' $ artist ['image'] [1] 'を試しましたか? 'dd($ artist ['image'])'の出力は何ですか? – Ali

+1

@Aliはvar_dump($ track)を意味します。 foreachの中で。 'dd'はLaravel関数であり、ネイティブPHPではありません。 – admcfajn

+0

@admcfajn! – Ali

答えて

1

echo '<img src="'.$track['image'][0]['#text'].'">';はあなたが探しているものです。

0$track['image']配列内のインデックスである、あなたがしたい画像サイズに基づいて、それを変更することもできます...または、することができますループ、それをして画像

$images = []; 
foreach($track['image'] as $image){ 
    $images[] = [ $image['size']=>$image['#text'] ]; 
} 

echo '<img src="'.$images['small'].'"/>; 
+0

感謝あなたのコードで?フルコードをペーストビンに貼り付けることができますか?見てみましょうか?ループのネストが間違っているようです。 –

+0

を上記を試してみました – admcfajn

+0

https://pastebin.com/Cd2jUEdiはコード https://imgur.com/a/zSk3Iです。スクリーンショットです:) –

関連する問題