关于网站顶部腾讯微博轮换

原来的时候曾经发过一篇文章《腾讯微博API接口JQUERY插件》,但是由于插件原作者的网站关闭。导致此插件的功能失效。

其实腾讯有自己的微博调用,不过腾讯在微博应用频道发布该应用后,产生了一些自定义的问题,比如说样式的固定单一性。有时候我们只需要腾讯提供微博数据,自己来设计想要显示的样式和效果。

同时腾讯为让微博用户能够更快速、更方便的阅读到自己在腾讯微博中收听的微博消息,并帮助微博应用开发者更简便的通过微博信息进行功能开发,腾讯微博开放平台将“我的微博主页”内容,提供了RSS订阅源/JSONP格式输出。详见:http://open.t.qq.com/resource.php?i=3,3

下面详细的介绍一下通过腾讯通的微博RSS/JSONP格式输出来在个人网站显示微博数据,并设定自己的CSS样式。大体的步骤分为两个,第一个就是获取并解析数据;第二个就是设定显示微博的CSS样式。其实关键就在如何解析数据上。像我的网站顶部腾讯微博的轮换效果的实现步骤如下:

首先是PHP代码:根据以下路径\include\lib\找到function.base.php。添加两个函数。

function show_sy(){ 
    global $CACHE;  
    foreach($CACHE->readCache('newtw') as $value): 
    echo '<li><p>'.$value['t'].'</p><span>——'.smartDate($value['date']).' 来自碎语</span></li>'; 
    endforeach; 
    } 
function show_weibo() { 
     $num = 5; //显示的数量 
     $url = ''; //腾讯微博的json地址,改成你自己的,type=1为我的广播,=2为我的首页,建议1 
     $expire = 259200; //过期时间 
     $cache_file = EMLOG_ROOT . '/weibo.dat';  //缓存文件 
     $arr = array(); 
     clearstatcache(); 
     if (file_exists($cache_file) && time() <= (filemtime($cache_file) + $expire)) {//缓存文件存在且未过期则直接读取 
         $arr = unserialize(file_get_contents($cache_file)); 
     }else{//缓存文件不存在或已过期则读取json数据处理并缓存 
         $content = file_get_contents($url); 
         $content = str_replace(")", "", str_replace("weiboData(", "", $content)); 
         $weibo = json_decode($content, true); 
         $arrsize = count($weibo['data']); 
         if ($num > $arrsize) {//如果调用条数大于Json返回的条数 
             $num = $arrsize; 
           } 
         if($arrsize !=0){//如果腾讯数据响应成功 
           $arr = array_slice($weibo['data'], 0, $num); 
           file_put_contents($cache_file, serialize($arr)); //写入缓存文件 
         } 
      }//if……else 
      if ($arr) { 
              shuffle($arr); 
              foreach ($arr as $weibo): 
                            if($weibo['source']){ 
                                echo '<li><p>转发:'.$weibo['source']['content']; 
                                }else{ 
                                    echo '<li><p>原创:'.$weibo['content']; 
                                    } 
                            echo'</p><span>——'.smartDate($weibo['timestamp']).' 来自微博</span></li>'; 
                            endforeach; 
       } else { 
         show_sy(); //如果没有取得微博数据则以碎语代替
     }//if……else 
 } 

本文参考了乱了感觉的文章,在此表示感谢!原文地址:http://messense.me/t-qq-json-php.html 

已有 6 条评论
  1. 奇怪,在哪呢

    1. @Louis Han:在首页呢@_@

  2. 很不错的,新年快乐!

    1. @俊文:新年快乐!{smile:1}

  3. 223.214.131.240 223.214.131.240

    我为了简单点,多余的东西都砍掉了。不过这个还不错。我以前也折腾过

  4. 124.239.209.148 124.239.209.148

    {smile:1}撸过看看

添加新评论