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 相关文章推荐
开发大型PHP项目的方法
Oct 09 PHP
玩转虚拟域名◎+ .
Oct 09 PHP
PHP的FTP学习(四)
Oct 09 PHP
PHP+Memcache实现wordpress访问总数统计(非插件)
Jul 04 PHP
前端必学之PHP语法基础
Jan 01 PHP
Zend Framework生成验证码并实现验证码验证功能(附demo源码下载)
Mar 22 PHP
PHP6连接SQLServer2005的三部曲
Apr 15 PHP
php字符串操作常见问题小结
Oct 11 PHP
laravel框架关于搜索功能的实现
Mar 15 PHP
可兼容php5与php7的cURL文件上传功能实例分析
May 11 PHP
laravel框架之数据库查出来的对象实现转化为数组
Oct 23 PHP
Laravel 框架基于自带的用户系统实现登录注册及错误处理功能分析
Apr 14 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
神族 Protoss 剧情介绍
2020/03/14 星际争霸
memcache命令启动参数中文解释
2014/01/13 PHP
在Laravel 中实现是否关注的示例
2019/10/22 PHP
Prototype使用指南之form.js
2007/01/10 Javascript
在JavaScript中遭遇级联表达式陷阱
2007/03/08 Javascript
js正确获取元素样式详解
2009/08/07 Javascript
jquery的$getjson调用并获取远程的JSON字符串问题
2012/12/10 Javascript
基于jQuery选择器的整理集合
2013/04/26 Javascript
json数据处理技巧(字段带空格、增加字段、排序等等)
2013/06/14 Javascript
JavaScript 和 Java 的区别浅析
2013/07/31 Javascript
使用js修改客户端注册表的方法
2013/08/09 Javascript
代码获取历史上的今天发生的事
2014/04/11 Javascript
黑帽seo劫持程序,js劫持搜索引擎代码
2015/09/15 Javascript
Bootstrap实现input控件失去焦点时验证
2016/08/04 Javascript
实例分析浏览器中“JavaScript解析器”的工作原理
2016/12/12 Javascript
Angularjs中ng-repeat-start与ng-repeat-end的用法实例介绍
2016/12/31 Javascript
js数组实现权重概率分配
2017/09/12 Javascript
微信小程序实现评论功能
2018/11/28 Javascript
vue中的使用token的方法示例
2020/03/10 Javascript
[40:10]2015国际邀请赛全明星表演赛
2015/08/07 DOTA
Python实现序列化及csv文件读取
2020/01/19 Python
CSS3中的clip-path使用攻略
2015/08/03 HTML / CSS
做一个能自适应高度的textarea的示例代码
2019/09/06 HTML / CSS
次世代生活态度:Hypebeast
2018/07/05 全球购物
荷兰街头时尚之家:Funkie House
2019/03/18 全球购物
英国经济型酒店品牌:Travelodge
2019/12/17 全球购物
如何判断计算机可能已经中马
2013/03/22 面试题
经典优秀个人求职信分享
2013/12/12 职场文书
顶撞老师检讨书
2014/02/07 职场文书
高中教师考核方案
2014/05/18 职场文书
董事长秘书工作职责
2014/06/10 职场文书
企业贷款委托书格式
2014/09/12 职场文书
小学四年级学生评语
2014/12/26 职场文书
2015年师德师风承诺书
2015/01/22 职场文书
客房部经理岗位职责
2015/02/02 职场文书
python如何为list实现find方法
2022/05/30 Python