2017-02-12 5 views
0

私はAPIのiTunes StoreからPHPファイルにデータを取得したいと考えています。検索フォームでは、曲のアーティストとタイトルを記入することができます。私はその曲のデータだけを表示したい。これは私のコードです:iTunes検索ストアapi

$title = $_POST["title"]; 
$artist = $_POST["artist"]; 
$query_string = urlencode($title); 
$query_string2 = urlencode($artist); 
$json = file_get_contents('https://itunes.apple.com/search?term=$query_string&term=$query_string2'); // this WILL do an http request for you 
$data = json_decode($json); 

echo "<div class='container' id='movies'>"; 
echo "<div class='col-md-4' id='movie'>"; 
echo "<img src='" .$data->artworkUrl60. "' width='200'>"; 
echo "<h4>" .$data->artistName. " - " .$data->trackName. "</h4>"; 

私はこのエラーを取得:注意:未定義のプロパティ:はstdClass :: $ artworkUrl60に.... いただきました私のコードで間違って?

答えて

1

$ dataオブジェクトに$ artworkUrl60という名前の属性が含まれていないためです。 HTTPクエリが正しく動作しないため、一重引用符の代わりに二重引用符を使用する必要があります。

// For limit you can add 'limit' parameter 
$json = file_get_contents("https://itunes.apple.com/search?term=$query_string&term=$query_string2&limit=20"); 
// OR concatenation 
// $json = file_get_contents('https://itunes.apple.com/search?term='.$query_string.'&term='.$query_string2); 
$data = json_decode($json); 

if (0 == $data->resultCount) { 
    echo 'No result found ! '; 
} 
else { 
    foreach ($data->results as $row){ 
     echo "<div class='container' id='movies'>"; 
     echo "<div class='col-md-4' id='movie'>"; 
     echo "<img src='" .$row->artworkUrl60. "' width='200'>"; 
     echo "<h4>" .$row->artistName. " - " .$row->trackName. "</h4>"; 
    } 
} 

https://affiliate.itunes.apple.com/resources/documentation/itunes-store-web-service-search-api/#searchexamples

+0

のvar_dumpは、すべての配列を与えます。しかし、私がするとき:$ data-> artistName。私は同じエラーを受け取ります –

+0

あなたはforeachループを追加する必要があります –

+0

それは、ありがとうございます! –