Home > Internet > 两种方法获取Feedsky的订阅数
2009April . 3rd

两种方法获取Feedsky的订阅数

Feedsky尽管饱受广大博友们的诟病,但是目前在国内它还是提供了比较全面和完善的服务。这不得不让我们痛恨着并使用着!就像QQ、就像迅雷,尽管N多人百般批评,但是我就是不相信那些天天痛恨它们的人,你的PC里面没有安装QQ、没有安装迅雷!

Feedsky目前是以图片的形式展示你博客每天的订阅量(确切地说应该是显示前一天的订阅量),它没有像FeedBurner那样可以让用户自定义订阅数量的显示形式,这给那些喜欢个性化的博友带来了不便。

今天我们就让它变为现实,通过在你主题中简单的加入一段代码,从而轻松实现以文本形式获取Feedsky订阅数!当然你还可以为它定义CSS样式,以满足你的个性化要求!

传说中的获取原理:

通过反汇编Feedsky的Flash统计中的Flash文件取到FeedSky订阅数API(XML),获取到的地址如下:

http://www.feedsky.com/rpc/feed_statistic_xml.php?u=user

把user替换为你的用户名,就可以获取当前月份的订阅数的XML,理论上这种提供了Flash统计的都可以获取到对应的XML地址,简单编了一段处理XML的PHP代码就可以获取Feedsky订阅数

方法一:将以下代码放置到你想让订阅数显示的位置即可(注意:修改为你的Feedsky用户名)

< ?php
$xml = simplexml_load_file('http://www.feedsky.com/rpc/feed_statistic_xml.php?u=aftertown');
$node = $xml->xpath('/month/day[last()]');
foreach($node as $n){echo $n['subcount'];}
?>人已订阅

方法二:复制以下代码添加到需要的位置即可

< ?php
   header("Content-Type:text/html;charset=utf-8");
 
   function openElement($parser, $element, $attributes) {
      foreach ($attributes as $key => $value)
                if ($key == 'subcount') {
                        $attr .= $value;
          }
                if ($attributes['value'] == date("Ymd")-1) {
                        echo "$attr";
                }
   }
 
   function closeElement($parser, $element) {
      //echo "$element<br />";
   }
 
   function characterData($parser, $data) {
      //echo "[$data]<br />";
   }
 
   $parser = xml_parser_create();
 
   xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, false);
   xml_set_element_handler($parser, "openElement", "closeElement");
   xml_set_character_data_handler($parser, "characterData");
 
   $file = file_get_contents("http://www.feedsky.com/rpc/feed_statistic_xml.php?u=aftertown");
 
   xml_parse($parser, $file);
 
   xml_parser_free($parser);
?>

说明:代码设定为获取当天前一天的订阅数,如果想获取当天或当月任意一天的订阅数,修改代码中date(“Ymd”)-1的部分为你想要的日期即可。注意修改为你的Feedsky用户名哦!

由于这两种方法非本人原创(方法一出自Shawn Blog;方法二因作者的博客已不存在无法提供),且对文中提及的反汇编方法不甚了解,因此无法更详细地给大家讲解,至于两种方法有何优劣,因水平有限,我也不得而知,如果你有高见或是更好的办法,欢迎你留言探讨和分享!

  1. No comments yet.

Subscriber selector

Close