PHP調用Twitter的RSS的實現代碼_php技巧

來源:互聯網
上載者:User

這個欄目最開始調用微博飯否的API來做的,因為眾所周知的緣故,飯否無法使用了,後來採用騰訊的滔滔API來實現.2010年1月26日滔滔業務將會開始和QQ空間心情整合,只能考慮放棄。思來想去,最終還是考慮用Twitter來實現,不過Twitter在國內無法訪問,不能採用js的方式來調用。本部落格的伺服器才國外,用php的方式訪問Twitter的API應該沒有問題,雖然有現成的wordpress外掛程式“Twitter Tools”可以用,但本著盡量少用外掛程式的目的,決定直接用php在wordpress主題裡實現。twritter提供的API介面很豐富,研究一下覺得調用Twitter RSS的API比較簡單,實現如下功能:

1、抓取twitter RSS的內容,不要求輸入密碼,只需要使用者名稱。
2、格式化RSS的內容,顯示使用者本人的推的內容及時間,排除 @replies 回複給他人的資訊內容。

代碼如下:
複製代碼 代碼如下:

<!-- my tritter -->
<?php
$username='xjb';//change this to your twitter username修改為你的twitter 使用者名稱
$feedURL='http://twitter.com/statuses/user_timeline/'.$username.'.rss';
$excludePattern='/'.$username.': @/'; //excludes any @replies排除@replies 內容
$count=5;// show count
$i=0;

if(!$xml=simplexml_load_file($feedURL)){
trigger_error('Error',E_USER_ERROR);
}
foreach($xml->channel->item as $item) {
if ( ! preg_match("$excludePattern", $item->title)) {
$filteredTitle=htmlspecialchars("$item->title");
$filteredTitle=str_replace("$username: ","",$filteredTitle);
//Convert the time zone in China --轉成中國時區
date_default_timezone_set('Asia/Shanghai');
$i++;

if($i>$count)
{
break;
}
?>
<li><?php echo $filteredTitle; ?>
(<?php echo date("Y-m-d H:i:s",strtotime($item->pubDate)); ?>)</li>
<?php } } ?>
<div align="right">
<a href="http://twitter.com/xjb" target="_blank">更多...</a></div>
<!-- my tritter -->

原始碼
複製代碼 代碼如下:

<!-- my tritter -->
<?php

$username='xjb'; //change this to your twitter username --修改為你的twitter 使用者名稱
$feedURL='http://twitter.com/statuses/user_timeline/'.$username.'.rss';
$excludePattern='/'.$username.': @/'; //excludes any @replies --排除 @replies 內容
$count=5;// show count
$i=0;

if(!$xml=simplexml_load_file($feedURL)){
trigger_error('Error',E_USER_ERROR);
}
foreach($xml->channel->item as $item) {
if ( ! preg_match("$excludePattern", $item->title)) {
$filteredTitle=htmlspecialchars("$item->title");
$filteredTitle=str_replace("$username: ","",$filteredTitle);
date_default_timezone_set('Asia/Shanghai'); //Convert the time zone in China --轉成中國時區
$i++;

if($i>$count)
{
break;
}
?>

<li><?php echo $filteredTitle; ?>(<?php echo date("Y-m-d H:i:s",strtotime($item->pubDate)); ?>)</li>
<?php } } ?>
<div align="right"><a href="http://twitter.com/xjb" target="_blank">更多...</a></div>
<!-- my tritter -->
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.