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 相关文章推荐
基于mysql的论坛(2)
Oct 09 PHP
php用户注册页面利用js进行表单验证具体实例
Oct 17 PHP
PHP数组遍历知识汇总(包含遍历方法、数组指针操作函数、数组遍历测速)
Jul 05 PHP
php中file_get_contents与curl性能比较分析
Nov 08 PHP
PHP技术开发微信公众平台
Jul 22 PHP
PHP实现的简单缓存类
Jul 29 PHP
Codeigniter控制器controller继承问题实例分析
Jan 19 PHP
PHP验证码生成原理和实现
Jan 24 PHP
PHP安装GeoIP扩展根据IP获取地理位置及计算距离的方法
Jul 01 PHP
详谈PHP程序Laravel 5框架的优化技巧
Jul 18 PHP
PHP实现支付宝即时到账功能
Dec 21 PHP
基于laravel缓冲cache的用法详解
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
给初学PHP的5个入手程序
2006/11/23 PHP
kindeditor 加入七牛云上传的实例讲解
2017/11/12 PHP
详解PHP变量传值赋值和引用赋值变量销毁
2019/03/23 PHP
javascript 定义新对象方法
2010/02/20 Javascript
jQuery 学习第五课 Ajax 使用说明
2010/05/17 Javascript
jQuery下实现等待指定元素加载完毕(可改成纯js版)
2013/07/11 Javascript
javascript ajax 仿百度分页函数
2013/10/29 Javascript
javascript中window.open在原来的窗口中打开新的窗口(不同名)
2015/11/15 Javascript
node网页分段渲染详解
2016/09/05 Javascript
AngularJS bootstrap启动详解及实例代码
2016/09/14 Javascript
原生JS实现垂直手风琴效果
2017/02/19 Javascript
AngularJS 霸道的过滤器小结
2017/04/26 Javascript
详解webpack进阶之插件篇
2017/07/06 Javascript
vue实现一个炫酷的日历组件
2018/10/08 Javascript
如何从0开始用node写一个自己的命令行程序
2018/12/29 Javascript
Vue动态组件与异步组件实例详解
2019/02/23 Javascript
微信小程序 select 下拉框组件功能
2019/09/09 Javascript
vue 解决异步数据更新问题
2019/10/29 Javascript
vue实现在线学生录入系统
2020/05/30 Javascript
[40:13]Ti4 冒泡赛第二天 iG vs NEWBEE 2
2014/07/15 DOTA
[02:11]2016国际邀请赛中国区预选赛最美TA采访现场玩家
2016/06/28 DOTA
python中实现数组和列表读取一列的方法
2018/04/03 Python
Numpy的简单用法小结
2019/08/28 Python
Python实现栈的方法详解【基于数组和单链表两种方法】
2020/02/22 Python
python+selenium+PhantomJS抓取网页动态加载内容
2020/02/25 Python
如何利用Python给自己的头像加一个小国旗(小月饼)
2020/10/02 Python
HTML5之tabindex属性全面解析
2016/07/07 HTML / CSS
比驿:全球酒店比价网
2018/06/20 全球购物
业务部经理岗位职责
2014/01/04 职场文书
学生党员公开承诺书
2014/05/28 职场文书
医院党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
2014年班组长工作总结
2014/11/20 职场文书
教师调动申请报告
2015/05/18 职场文书
民事答辩状范本
2015/05/21 职场文书
2019年农民幸福观调查的实践感悟
2019/12/19 职场文书
Python利用机器学习算法实现垃圾邮件的识别
2021/06/28 Python