让 FeedBurner 联姻国产 RSS 阅读器

By NetPuter on 2009-08-08 / * Internet / # , !
17

一些到处流浪的 Blogger 们,季经式(一个季度一次)的更换 BSP ,对于读者来说不断的退订、订阅同一个人的 Blog 是非常麻烦的。对于这些 Blogger 们来说,选择一只优秀的 Feed 托管商是非常重要的。目前,出现在我生命中的 Feed 托管商有: FeedBurner,FeedSky,FeedCat。 FeedBurn 老牌劲旅,皈依 Google 门下却不思进取; FeedSky 中国制造,却时常抽风捉摸不透; FeedCat 只为数字而生,弄虚作假不知何意。除去现状不说, FeedBurner 还是非常稳定,和 FeedSky 相比只有一个缺陷:不符合中国国情——没有中文界面,没有订阅到国产 RSS 阅读器的快捷按钮。虽然官方只提供了国外常用 RSS 阅读器订阅按钮,但凭借着其开放性,我们还是可以为 FeedBurn 添加国产 RSS 阅读器订阅按钮的!

feedburner-01

显示 FeedSky,FeedBurner,Google Feed 的文本统计数字的方法

By NetPuter on 2009-01-23 / * Internet / # , , , , , !
37

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

FeedSky

Shawn 童鞋已经提供了显示 FeedSky 的文本统计数字的方法(原文地址),相关代码如下(把代码中的 feedsky-id 改为你的 Feed@FeedSky 的名称):

1
2
3
4
5
<?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 的名称):

1
2
3
4
5
<?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 的名称):

1
2
3
4
5
<?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

最终效果以及相关注意

因为 OrzDream 是由 FeedSky 托管的,也有由 FeedBurner 托管的,但是几乎没有数字,所以借用一下 WPChina.org精品博客的订阅统计。
图像版:

截止至昨天, OrzDream 已经有
WPChina.org 有
精品博客有

文本版:

截止至昨天, OrzDream 已经有xpath('/month/day[last()]');foreach($node as $n){echo $n['subcount'];} ?>位读者, WPChina.org 有 $xml = simplexml_load_file('http://api.feedburner.com/awareness/1.0/GetFeedData?uri=wordpresschina');$node = $xml->xpath('/rsp/feed/entry');foreach($node as $n){echo $n['circulation'];} ?> Readers ,精品博客有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 的内容),你觉得呢?

PS1:一开始我是用 HONGKIAT.COM 的方法显示 FeedBurner,Google Feed 的文本统计数字的,但发现不可行。后来在和 Leeiio 的扯淡过程中突发灵感,其结果也就是上文的内容啦。折腾成功的感觉真
PS2:参考资料:《PHP 中的 SimpleXML 处理

Advertise Here