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 相关文章推荐
新闻分类录入、显示系统
Oct 09 PHP
php面向对象全攻略 (九)访问类型
Sep 30 PHP
php笔记之:php数组相关函数的使用
Apr 26 PHP
一个好用的PHP验证码类实例分享
Dec 27 PHP
php中AES加密解密的例子小结
Feb 18 PHP
php 魔术方法详解
Nov 11 PHP
php使用递归计算文件夹大小
Dec 24 PHP
在PHP站点的页面上添加Facebook评论插件的实例教程
Jan 08 PHP
提交表单后 PHP获取提交内容的实现方法
May 25 PHP
php mongodb操作类 带几个简单的例子
Aug 25 PHP
PHP有序表查找之插值查找算法示例
Feb 10 PHP
thinkphp5.0整合phpsocketio完整攻略(绕坑)
Oct 12 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高级编程实例:编写守护进程
2014/09/02 PHP
详谈PHP编码转换问题
2015/07/28 PHP
PHP闭包函数传参及使用外部变量的方法
2016/03/15 PHP
一个简单的js渐显(fadeIn)渐隐(fadeOut)类
2010/06/19 Javascript
关于javascript function对象那些迷惑分析
2011/10/24 Javascript
js函数的延迟加载实现代码
2012/10/11 Javascript
js jquery分别实现动态的文件上传操作按钮的添加和删除
2014/01/13 Javascript
jQuery学习笔记之jQuery构建函数的7种方法
2014/06/03 Javascript
jquery 3D 标签云示例代码
2014/06/12 Javascript
基于jQuery Bar Indicator 插件实现进度条展示效果
2015/09/30 Javascript
详解Angularjs filter过滤器
2016/02/06 Javascript
bootstrap侧边栏圆点导航
2017/01/11 Javascript
js正则表达式验证表单【完整版】
2017/03/06 Javascript
tab栏切换原理
2017/03/22 Javascript
微信小程序页面间通信的5种方式
2017/03/31 Javascript
原生JavaScript实现精美的淘宝轮播图效果示例【附demo源码下载】
2017/05/27 Javascript
vue-resource + json-server模拟数据的方法
2017/11/02 Javascript
完美解决手机网页中输入框被输入法遮挡的问题
2017/12/19 Javascript
如何在vue里面优雅的解决跨域(路由冲突问题)
2019/01/20 Javascript
vue轻量级框架无法获取到vue对象解决方法
2019/05/12 Javascript
Python time模块详解(常用函数实例讲解,非常好)
2014/04/24 Python
Python中第三方库Requests库的高级用法详解
2017/03/12 Python
Python切片操作实例分析
2018/03/16 Python
Python走楼梯问题解决方法示例
2018/07/25 Python
将labelme格式数据转化为标准的coco数据集格式方式
2020/02/17 Python
浅析Python 责任链设计模式
2020/09/11 Python
Python特殊属性property原理及使用方法解析
2020/10/09 Python
美国存储和组织商店:The Container Store
2017/08/16 全球购物
社会实践心得体会
2014/01/03 职场文书
yy司仪主持词
2014/03/22 职场文书
事业单位竞聘上岗实施方案
2014/03/28 职场文书
法定代表人授权委托书
2014/04/04 职场文书
房地产经营管理专业自荐信
2014/09/02 职场文书
2014年服务员个人工作总结
2014/12/23 职场文书
MySQL利用UNION连接2个查询排序失效详解
2021/11/20 MySQL
python垃圾回收机制原理分析
2022/04/13 Python