API Last.FM разбирается с PHP - PullRequest
1 голос
/ 16 февраля 2010

Я новичок в этом, так что терпите мой нубистский вопрос.

По сути, я хочу, чтобы пользователь вводил поисковую фразу в веб-форму и передавал запрос в API lastFM и возвращал лучших исполнителей, использующих эту фразу на основе своего узла API "gettopartists". Вот код, который у меня есть ...

function last($q) {
    $target_url='http://ws.audioscrobbler.com/2.0/format=json&method=tag.gettopartists&api_key=....&tag=' . $q . '';
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL,$target_url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);

    $return = curl_exec($ch);
}

Очевидно, что в этом случае я получаю действительный возврат, печатая "echo $ return;" но я не знаю, как правильно разобрать. Независимо от того, сколько аргументов foreach я ввожу, я не могу избежать ошибки или вообще не выводить ...

Спасибо, ребята ...

Ответы [ 2 ]

2 голосов
/ 16 февраля 2010

Я полагаю, вы говорите об этой функции: http://www.last.fm/api/show?service=300

Если вы пропустите часть format = json, она будет возвращена как xml

Пример ответа выглядит в формате XML, в этом случае вы можете проанализировать его с помощью PHP SimpleXML http://php.net/manual/en/ref.simplexml.php

http://www.ibm.com/developerworks/library/x-simplexml.html

У вас также есть формат = json, что заставляет меня поверить, что оно может быть возвращено в формате JSON, и в этом случае вы будете использовать json_decode.

$ json = '{"foo-bar": 12345}';

$ obj = json_decode ($ json); echo $ obj -> {'foo-bar'}; // 12345

0 голосов
/ 16 февраля 2010

Вы должны взглянуть на документацию PHP для json_decode . Он создает объект stdClass (или ассоциативные массивы) из JSON, который вы можете зациклить на своем сердце.

...