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数组中删除元素的实现代码
Jun 22 PHP
使用php方法curl抓取AJAX异步内容思路分析及代码分享
Aug 25 PHP
php使用fgetcsv读取csv文件出现乱码的解决方法
Nov 08 PHP
php获取当月最后一天函数分享
Feb 02 PHP
适用于初学者的简易PHP文件上传类
Oct 29 PHP
CI分页类首页、尾页不显示的解决方法
Mar 28 PHP
Yii2创建控制器(createController)方法详解
Jul 23 PHP
PHP函数引用返回的实例详解
Sep 11 PHP
使用Yii2实现主从数据库设置
Nov 20 PHP
PHP实现二维数组去重功能示例
Jan 12 PHP
Smarty模板配置实例简析
Jul 20 PHP
PHP发送邮件确认验证注册功能示例【修改别人邮件类】
Nov 09 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 程序员也要学会使用“异常”
2009/06/16 PHP
php经典算法集锦
2015/11/14 PHP
thinkPHP5.0框架URL访问方法详解
2017/03/18 PHP
Laravel框架在本地虚拟机快速安装的方法详解
2018/06/11 PHP
在JS中最常看到切最容易迷惑的语法(转)
2010/10/29 Javascript
jQuery Ajax方法调用 Asp.Net WebService 的详细实例代码
2011/04/27 Javascript
jQuery 数据缓存模块进化史详细介绍
2012/11/19 Javascript
jquery动态更换设置背景图的方法
2014/03/25 Javascript
window.location不跳转的问题解决方法
2014/04/17 Javascript
jQuery UI Bootstrap是什么?
2016/06/17 Javascript
node.js实现复制文本到剪切板的功能
2017/01/23 Javascript
BootStrap中Table隐藏后显示问题的实现代码
2017/08/31 Javascript
JS引用传递与值传递的区别与用法分析
2018/06/01 Javascript
在vue中使用echarts图表实例代码详解
2018/10/22 Javascript
JS中min函数实例讲解
2019/02/18 Javascript
layui数据表格实现重载数据表格功能(搜索功能)
2019/07/27 Javascript
Vue 实现简易多行滚动&quot;弹幕&quot;效果
2020/01/02 Javascript
Vue看了就会的8个小技巧
2021/01/21 Vue.js
[01:02:48]2018DOTA2亚洲邀请赛 4.1 小组赛 A组 LGD vs OG
2018/04/02 DOTA
[01:02:30]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第三场 8.22
2019/09/05 DOTA
[48:28]完美世界DOTA2联赛循环赛FTD vs Magma第二场 10月30日
2020/10/31 DOTA
简单谈谈Python中的元祖(Tuple)和字典(Dict)
2017/04/21 Python
浅谈python日志的配置文件路径问题
2018/04/28 Python
Python使用tkinter库实现文本显示用户输入功能示例
2018/05/30 Python
深入浅析Python2.x和3.x版本的主要区别
2018/11/30 Python
Pandas之DataFrame对象的列和索引之间的转化
2019/06/25 Python
详解python中index()、find()方法
2019/08/29 Python
解析python实现Lasso回归
2019/09/11 Python
Python3 A*寻路算法实现方式
2019/12/24 Python
解决Opencv+Python cv2.imshow闪退问题
2020/04/24 Python
为什么相对PHP黑python的更少
2020/06/21 Python
师范大学音乐表演专业求职信
2013/10/23 职场文书
协议书与合同的区别
2014/04/18 职场文书
2014年勤工助学工作总结
2014/11/24 职场文书
2015年派出所工作总结
2015/04/24 职场文书
2016党员干部政治学习心得体会
2016/01/23 职场文书