有些时候,为了页面的样式,或许你需要显示 FeedSky 、 FeedBurner 、 Google Feed 的文本统计数字。如何实现呢?其实我们可以利用强大的 API 调用 RSS 托管商的文本统计数字

FeedSky

Shawn 童鞋已经提供了显示 FeedSky 的文本统计数字的方法,相关代码如下(把代码中的 feedsky-id 改为你的 Feed@FeedSky 的名称):
<?php
  $xml = simplexml_load_file('http://www.feedsky.com/rpc/feed_statistic_xml.php?u=feedsky-id');
  $node = $xml->xpath('/month/day[last()]');

  foreach ($node as $n) {
    echo $n['subcount'];
  }
?> 位读者

FeedBurner

这个方法是 NetPuter 参考 Shawn 的方法实现的,算是准原创吧。其中 API 的地址是在这里发现的,相关代码如下(同样,把代码中的 feedburner-id 改为你的 Feed@FeedBurner 的名称):
<?php
  $xml = simplexml_load_file('http://api.feedburner.com/awareness/1.0/GetFeedData?uri=feedburner-id');
  $node = $xml->xpath('/rsp/feed/entry');

  foreach ($node as $n) {
    echo $n['circulation'];
  }
?> Readers

Google Feed

由于 FeedBurner 已被 Google 收购,因此调用方法也差不多,代码如下(还是,把代码中的 googlefeed-id 改为你的 Feed@FeedBurner 的名称):
<?php
  $xml = simplexml_load_file('https://feedburner.google.com/api/awareness/1.0/GetFeedData?uri=googlefeed-id');
  $node = $xml->xpath('/rsp/feed/entry');

  foreach ($node as $n) {
    echo $n['circulation'];
  }
?> Readers

注意事项

  1. 建议大家在使用代码的时候 Cache 一下,帮助 RSS 托管商和地球节省资源。有关 Cache 可以参考 WordPress 官方 Codex 的详细内容
  2. 关于显示 FeedBurner 、 Google Feed 的文本统计数字的方法中,用到 SimpleXMLElements 这个玩意儿,它生存在 PHP5 环境中。如果你的 Blog 还是生存在 PHP4 环境的话,就无法使用以上显示 FeedBurner 、 Google Feed 的文本统计数字了。
  3. 不知道为什么,精品博客的订阅统计图标和文本有很大出入。此外, FeedSky 和 FeedBurner 也是图标和文本有出入(但是不大),我想应该是因为图标是一天更新一次,而 API 是即时更新的吧(可以看看它们的 API 的内容),你觉得呢?
  4. 参考资料:PHP 中的 SimpleXML 处理