<?php // Modified by Khertan // Example: Get a single tweet. //$status = getTwitterStatus("manas"); //echo($status[0]['message'] . ' - ' . $status[0]['time']); // Example: Get multiple tweets. //$statuses = getTwitterStatus("manas", 100); //foreach ($statuses as $status) { // echo($status['message'] . ' - ' . $status['time']); //} function curl_get_file_contents($URL) { $c = curl_init(); curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); curl_setopt($c, CURLOPT_URL, $URL); $contents = curl_exec($c); curl_close($c); if ($contents) return $contents; else return FALSE; } function loadTwitterStatus($twitterUser,$limit){ $status = ''; $life = (time() - filectime($twitterUser.'.tweets')); if($life < (10*60) and $life > 0) { $statuses = unserialize((file_get_contents($twitterUser.'.tweets'))); $index = 1; foreach ($statuses as $tweet) { $status = $status . '<p>'.$tweet['message'].'</p><p class="date">'. $tweet['time'] . '</p>'; $index++; if (($limit>0) and ($limit<$index)) break; } } else { $statuses = getTwitterStatus($twitterUser); if (count($statuses)==0){ $statuses = unserialize((file_get_contents($twitterUser.'.tweets')));} $index = 1; foreach ($statuses as $tweet) { $status = $status . '<p>'.$tweet['message'].'</p><p class="date">'. $tweet['time'] . '</p>'; $index++; if (($limit>0) and ($limit<$index)) break; } //file_put_contents($twitterUser.'.tweets',$status); if ($index>1) {file_put_contents($twitterUser.'.tweets',serialize($statuses));} } return $status; } /** * A simple Twitter status display script. * Useful as a status badge for JavaScript non-compliant browsers, where the * insertion of the status message must be performed on the server. * * @author Manas Tungare, manas@tungare.name * @version 1.1 * @copyright Manas Tungare, 2007 - 2009 and onwards. * @license Creative Commons Attribution ShareAlike 3.0. */ function getTwitterStatus($twitterUser) { $url = sprintf("http://twitter.com/statuses/user_timeline/%s.xml", $twitterUser); $tweets = array(); if (true == ($str=curl_get_file_contents($url))) {try{ $parsed = new SimpleXMLElement($str); foreach($parsed->status as $status) { $message = preg_replace("/http:\/\/(.*?)\/[^ ]*/", '<a href="\\0">\\0</a>',$status->text); $time = niceTime(strtotime(str_replace("+0000", "", $status->created_at))); $tweets[] = array('message' => $message, 'time' => $time); } }catch (Exception $e){;}} return $tweets; } /** * Formats a timestamp nicely with an adaptive "x units of time ago" message. * Based on the original Twitter JavaScript badge. Only handles past dates. * @return string Nicely-formatted message for the timestamp. * @param $time Output of strtotime() on your choice of timestamp. */ function niceTime($time) { $delta = time() - $time; if ($delta < 60) { return 'less than a minute ago.'; } else if ($delta < 120) { return 'about a minute ago.'; } else if ($delta < (45 * 60)) { return floor($delta / 60) . ' minutes ago.'; } else if ($delta < (90 * 60)) { return 'about an hour ago.'; } else if ($delta < (24 * 60 * 60)) { return 'about ' . floor($delta / 3600) . ' hours ago.'; } else if ($delta < (48 * 60 * 60)) { return '1 day ago.'; } else { return floor($delta / 86400) . ' days ago.'; } } ?> <? $statuses = loadTwitterStatus("khertan",-1); echo $statuses;?>