PHP - 使用 YQL 选择特定条目

发布于 2024-10-07 03:40:09 字数 661 浏览 6 评论 0原文

所以我使用 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'];

它工作正常,但我不喜欢我这样做的方式:) 我的意思是,有没有办法可以直接从上面的 $query URL 获取 subscriberCount 值?我不需要整个 XML,只需要其中一个条目。

so I'm using YQL to get a youtube user's subscriber count.

to do this I'm making a query using a URL like this:

$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=';

then I decode the response and find the array entry I'm looking for like this:

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

it works fine, except I don't like the way I'm doing this :)
I mean, is there a way I can get the subscriberCount value directly from the $query URL above? I don't need the entire XML, just that one entry.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

诗化ㄋ丶相逢 2024-10-14 03:40:09

您可以做的是将 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>

What you could do is to limit the amount of data that is returned by YQL to the data you are really interested in by doing sth like this:

SELECT statistics.subscriberCount FROM xml WHERE ...

Still you would have some structural XML/JSON elements around the number that you are interested in but at least it is less (see below). Not sure if that is what you wanted?

<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>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文