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+javascript模拟Matrix画面
Oct 09 PHP
php 去除html标记--strip_tags与htmlspecialchars的区别详解
Jun 26 PHP
PHP实现通过正则表达式替换回调的内容标签
Jun 15 PHP
YII动态模型(动态表名)支持分析
Mar 29 PHP
ThinkPHP使用Ueditor的方法详解
May 20 PHP
CI框架入门之MVC简单示例
Nov 21 PHP
php mysql_real_escape_string addslashes及mysql绑定参数防SQL注入攻击
Dec 23 PHP
yii2.0整合阿里云oss删除单个文件的方法
Sep 19 PHP
PHP面向对象程序设计子类扩展父类(子类重新载入父类)操作详解
Jun 14 PHP
php操作redis数据库常见方法实例总结
Feb 20 PHP
php多进程并发编程防止出现僵尸进程的方法分析
Feb 28 PHP
如何用PHP实现多线程编程
May 26 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
图书管理程序(三)
2006/10/09 PHP
php 编写安全的代码时容易犯的错误小结
2010/05/20 PHP
php数据库抽象层 PDO
2011/05/07 PHP
php 使用curl模拟登录人人(校内)网的简单实例
2016/06/06 PHP
PHP多种序列化/反序列化的方法详解
2017/06/23 PHP
Yii2 中实现单点登录的方法
2018/03/09 PHP
php中青蛙跳台阶的问题解决方法
2018/10/14 PHP
laravel 实现登陆后返回登陆前的页面方法
2019/10/03 PHP
浅析PHP中的 inet_pton 网络函数
2019/12/16 PHP
解决jquery .ajax 在IE下卡死问题的解决方法
2009/10/26 Javascript
javascript 清空form表单中某种元素的值
2009/12/26 Javascript
关于JavaScript中string 的replace
2013/04/12 Javascript
js获取时间并实现字符串和时间戳之间的转换
2015/01/05 Javascript
微信jssdk在iframe页面失效问题的解决措施
2016/03/03 Javascript
JavaScript继承学习笔记【新手必看】
2016/05/10 Javascript
浅谈JavaScript中的this指针和引用知识
2016/08/05 Javascript
Vue.js鼠标悬浮更换图片功能
2017/05/17 Javascript
vue2中的keep-alive使用总结及注意事项
2017/12/21 Javascript
node使用request请求的方法
2019/12/20 Javascript
js瀑布流布局的实现
2020/06/28 Javascript
基于vue.js仿淘宝收货地址并设置默认地址的案例分析
2020/08/20 Javascript
vue中解决chrome浏览器自动播放音频和MP3语音打包到线上的实现方法
2020/10/09 Javascript
Python实现二叉搜索树
2016/02/03 Python
python Selenium实现付费音乐批量下载的实现方法
2019/01/24 Python
实例讲解Python脚本成为Windows中运行的exe文件
2019/01/24 Python
python做反被爬保护的方法
2019/07/01 Python
Python散点图与折线图绘制过程解析
2019/11/30 Python
python用tkinter实现一个简易能进行随机点名的界面
2020/09/27 Python
HTML5在微信内置浏览器下右上角菜单的调整字体导致页面显示错乱的问题
2021/01/19 HTML / CSS
《小猪家的桃花树》教学反思
2014/04/11 职场文书
全国优秀教师事迹材料
2014/08/26 职场文书
意外死亡赔偿协议书
2014/10/14 职场文书
三下乡个人总结
2015/03/04 职场文书
预备党员考察表党小组意见
2015/06/01 职场文书
使用nginx动态转换图片大小生成缩略图
2021/03/31 Servers
Canvas三种动态画圆实现方法说明(小结)
2021/04/16 Javascript