PHP - выбор конкретной записи с YQL - PullRequest
0 голосов
/ 11 декабря 2010

, поэтому я использую YQL , чтобы получить количество подписчиков пользователя YouTube.

, чтобы сделать это, я делаю запрос, используя URL-адрес, подобный следующему:

$query = 'https://query.yahooapis.com/v1/public/yql?q='.urlencode("SELECT * FROM xml WHERE url='http://gdata.youtube.com/feeds/api/users/{$id}'").'&format=json&callback=';

затем я декодирую ответ и нахожу нужную запись массива следующим образом:

  $response = json_decode($response, true);
  $subscriber_count = $response['query']['results']['entry']['statistics']['subscriberCount'];

все работает нормально, за исключением того, что мне не нравится то, как я это делаю :) Язначит, есть ли способ получить значение subscriberCount непосредственно из $query URL выше?Мне не нужен весь XML, только одна запись.

1 Ответ

1 голос
/ 07 января 2011

Что вы можете сделать, это ограничить объем данных, возвращаемых YQL, данными, которые вас действительно интересуют, выполнив следующее:

SELECT statistics.subscriberCount FROM xml WHERE ...

Тем не менее, у вас будет некоторый структурный XML /JSON элементы вокруг числа, которое вас интересует, но, по крайней мере, оно меньше (см. Ниже).Не уверен, что это то, что вы хотели?

<query xmlns:yahoo="http://www.yahooapis.com/v1/base.rng"
    yahoo:count="1" yahoo:created="2011-01-06T23:21:32Z" yahoo:lang="en-US">
    <results>
        <entry xmlns="http://www.w3.org/2005/Atom">
            <yt:statistics
                xmlns:yt="http://gdata.youtube.com/schemas/2007" subscriberCount="7"/>
        </entry>
    </results>
</query>
...