2017-11-18 1 views
0

最後のfm APIに接続し、JSONファイルから情報を取得します。JSONファイルから情報を取得し、それをPHPの文字列に変換する

サンプルファイル:[最終FM API JSONファイル] [1]

私のPHPファイルで、私はこのコードを経由して、正しい情報を得る:

<?$get = file_get_contents('http://ws.audioscrobbler.com/2.0/? 
method=artist.getinfo&artist=Ed 
Sheeran&api_key=63692beaaf8ba794a541bca291234cd3&format=json'); 
$get = json_decode($get); 
foreach($get->artist->tags->tag as $tags) { $thetag = (array) $thetag;?> 
<? echo $thetag['name'];?> 
<?} ?> 

現時点では、これは、個々のタグをエコーし​​ますその芸術家のために:簡単な聞き取りや汚れなど

$ thetagを含む文字列を作成する方法はありますか?

$newstring = "easy listening, grime" 

e.t.c

私の計画では、文字列を作成し、タグ列は、これらのタグのいずれかが含まれている私のデータベースと表示レコードを検索するためのPHPコードを使用することです。どのようなアイデアが可能ですか?

[1]:http://ws.audioscrobbler.com/2.0/?method=artist.getinfo&artist=Edシーラン& API_KEY = 63692beaaf8ba794a541bca291234cd3 &形式= JSON

+0

コード部分はコード(インデント4つのスペース)のように見えるように、あなたの質問を編集してください。また、 ''でテキスト内のコードをマークしてください。ありがとう。 –

+0

@JavierElicesはそれがうまくいきましたか? –

+0

あなたが本物の作品を投稿したことを真剣にお伝えしていますか? – TimBrownlaw

答えて

0

これはテストの結果、作業といくつかの可能な方法の一つである...

<?php 
$song_list_json = file_get_contents('http://ws.audioscrobbler.com/2.0/?method=artist.getinfo&artist=Ed Sheeran&api_key=63692beaaf8ba794a541bca291234cd3&format=json'); 
$song_list = json_decode($song_list_json); 

$name_tags = array(); 
foreach ($song_list->artist->tags->tag as $tags) { 
    $name_tags[] = $tags->name; 
} 
$song_names = implode(', ',$name_tags); 

// Do something with it... 
echo $song_names; 
0

あなたが配列としてJSON文字列を解析することができます。次に関数を使用して$array['artist']['tags']['tag']配列を反復処理し、name値のみを取得します。

// $json contains JSON string from API response to ws.audioscrobbler.com. 
$array = json_decode($json, true); 
$tags = ''; 

if (!empty($array['artist']['tags']['tag'])) { 
    $tags = array_map(
     function($tag) { 
      return isset($tag['name']) ? $tag['name'] : ''; 
     }, $array['artist']['tags']['tag']); 
    $tags = implode(', ', $tags); 
} 
+0

これを試してみましたが、$ tagsをエコーし​​たようです。 私は応答とエラーを受け取りません PHP警告:不正な文字列オフセット '名前'。 なぜ、私は何か間違っているのですか? –

+0

@JohnMartyn、 'array_map'の中の関数は、' return $ tag ['name']; 'に' isset($ tag ['name'])を返しますか? $ tag ['name']: ''; ' – camelsWriteInCamelCase

関連する問題