PHP封装的Twitter访问类实例


Posted in PHP onJuly 18, 2015

本文实例讲述了PHP封装的Twitter访问类。分享给大家供大家参考。具体如下:

class Twitter {
 /**
  * Method to make twitter api call for the users timeline in XML
  *
  * @access private
  * @param $twitter_id, $num_of_tweets
  * @return $xml
  */
 private function api_call($twitter_id, $num_of_tweets) {
  $c = curl_init();
  curl_setopt($c, CURLOPT_URL, "http://twitter.com/statuses/user_timeline/$twitter_id.xml?count=$num_of_tweets");
  curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($c, CURLOPT_CONNECTTIMEOUT, 3);
  curl_setopt($c, CURLOPT_TIMEOUT, 5);
  $response  = curl_exec($c);
  $response_info = curl_getinfo($c);
  curl_close($c);
  if (intval($response_info['http_code']) == 200) {
   $xml = new SimpleXMLElement($response);
   return $xml;
  } else {
   return false;
  }
 }
 /**
  * Method to add hyperlink html tags to any urls, twitter ids or hashtags in tweet
  *
  * @access private
  * @param $text
  * @return $text
  */
 private function process_links($text) {
  $text = utf8_decode($text);
  $text = preg_replace('@(https?://([-\w\.]+)+(d+)?(/([\w/_\.]*(\?\S+)?)?)?)@', '<a href="$1">$1</a>', $text);
  $text = preg_replace("#(^|[\n ])@([^ \"\t\n\r<]*)#ise", "'\\1<a href=\"http://www.twitter.com/\\2\" >@\\2</a>'", $text);
  $text = preg_replace("#(^|[\n ])\#([^ \"\t\n\r<]*)#ise", "'\\1<a href=\"http://hashtags.org/search?query=\\2\" >#\\2</a>'", $text);
  return $text;
 }
 /**
  * Main method to retrieve the tweets and return html for display
  *
  * @access public
  * @param $twitter_id, $num_of_tweets, $timezone
  * @return $result
  */
 public function get_tweets($twitter_id, $num_of_tweets = 3, $timezone = "America/Denver") {
  $include_replies = false;
  date_default_timezone_set($timezone);
  // the html markup
  $cont_o  = "<div id=\"tweets\">\n";
  $tweet_o = "<div class=\"status\">\n";
  $tweet_c = "</div>\n\n";
  $detail_o = "<div class=\"details\">\n";
  $detail_c = "</div>\n\n";
  $cont_c  = "</div>\n";
  if ($twitter_xml = $this->api_call($twitter_id, $num_of_tweets)) {
   $result  = $cont_o;
   foreach ($twitter_xml->status as $key => $status) {
    if ($include_replies == true | substr_count($status->text, "@") == 0 | strpos($status->text, "@") != 0) {
     $tweet = $this->process_links($status->text);
     $result .= $tweet_o . $tweet . $tweet_c . $detail_o . date('D jS M y H:i', strtotime($status->created_at)) . $detail_c;
    }
   }
   $result  .= $cont_c;
  } else {
   $result  .= $cont_o . $tweet_o . "Twitter seems to be unavailable at the moment." . $tweet_c . $cont_c;
  }
  return $result;
 }
}

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
生成sessionid和随机密码的例子
Oct 09 PHP
php 什么是PEAR?
Mar 19 PHP
PHP引用符&amp;的用法详细解析
Aug 22 PHP
页面利用渐进式JPEG来提升用户体验度
Dec 01 PHP
PHP处理postfix邮件内容的方法
Jun 16 PHP
php遍历树的常用方法汇总
Jun 18 PHP
php采用session实现防止页面重复刷新
Dec 24 PHP
PHP查询并删除数据库多列重复数据的方法(利用数组函数实现)
Feb 23 PHP
PHP strip_tags保留多个HTML标签的方法
May 22 PHP
PHP基于DOMDocument解析和生成xml的方法分析
Jul 17 PHP
详细解读php的命名空间(二)
Feb 21 PHP
laravel框架与其他框架的详细对比
Oct 23 PHP
PHP+Javascript实现在线拍照功能实例
Jul 18 #PHP
thinkphp autoload 命名空间自定义 namespace
Jul 17 #PHP
简单谈谈PHP vs Node.js
Jul 17 #PHP
php+html5基于websocket实现聊天室的方法
Jul 17 #PHP
php获取错误信息的方法
Jul 17 #PHP
PHP实现C#山寨ArrayList的方法
Jul 16 #PHP
PHP计算加权平均数的方法
Jul 16 #PHP
You might like
Yii使用find findAll查找出指定字段的实现方法
2014/09/05 PHP
PHP进阶学习之命名空间基本用法分析
2019/06/18 PHP
Js 去掉字符串中的空格(实现代码)
2013/11/19 Javascript
巧用replace将文字表情替换为图片
2014/04/17 Javascript
JavaScript中的方法重载实例
2015/03/16 Javascript
javascript下拉列表菜单的实现方法
2015/11/18 Javascript
使用Bootstrap框架制作查询页面的界面实例代码
2016/05/27 Javascript
angularjs 源码解析之injector
2016/08/22 Javascript
BootStrap下拉菜单和滚动监听插件实现代码
2016/09/26 Javascript
jQuery 获取遍历获取table中每一个tr中的第一个td的方法
2016/10/05 Javascript
完美解决jQuery 鼠标快速滑过后,会执行多次滑出的问题
2016/12/08 Javascript
ES6中class类用法实例浅析
2017/04/06 Javascript
使用Webpack提高Vue.js应用的方式汇总(四种)
2017/07/10 Javascript
Bootstrap提示框效果的实例代码
2017/07/12 Javascript
vue教程之toast弹框全局调用示例详解
2020/08/24 Javascript
利用nvm管理多个版本的node.js与npm详解
2017/11/02 Javascript
原生JS实现 MUI导航栏透明渐变效果
2017/11/07 Javascript
详解Webpack+Babel+React开发环境的搭建的方法步骤
2018/01/09 Javascript
vue.js使用v-model指令实现的数据双向绑定功能示例
2018/05/22 Javascript
vue移动端屏幕适配详解
2019/04/30 Javascript
3分钟了解vue数据劫持的原理实现
2019/05/01 Javascript
微信小程序之高德地图多点路线规划过程示例详解
2021/01/18 Javascript
[52:06]完美世界DOTA2联赛决赛日 Inki vs LBZS 第一场 11.08
2020/11/10 DOTA
python3 线性回归验证方法
2019/07/09 Python
python利用7z批量解压rar的实现
2019/08/07 Python
Python代理IP爬虫的新手使用教程
2019/09/05 Python
TensorFlow绘制loss/accuracy曲线的实例
2020/01/21 Python
最新PyCharm 2020.2.3永久激活码(亲测有效)
2020/11/26 Python
CSS3点击按钮实现背景渐变动画效果
2016/10/19 HTML / CSS
Expedia爱尔兰:酒店、机票、租车及廉价假期
2017/01/02 全球购物
德购商城:德国进口直邮商城
2017/06/13 全球购物
澳大利亚最好的在线时尚精品店:Princess Polly
2018/01/03 全球购物
GANT英国官方网上商店:甘特衬衫
2018/02/06 全球购物
美国购买舞会礼服网站:Couture Candy
2019/12/29 全球购物
高中毕业生的个人自我评价
2014/02/21 职场文书
大学生感恩父母演讲稿
2014/08/28 职场文书