Last active
September 11, 2022 10:18
-
-
Save reformatco/2050560 to your computer and use it in GitHub Desktop.
Revisions
-
reformatco revised this gist
Sep 11, 2022 . No changes.There are no files selected for viewing
-
benpalmer79 created this gist
Mar 16, 2012 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,132 @@ function getTweets($user, $num = 3) { //first, get the user's timeline $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://twitter.com/statuses/user_timeline/$user.json?count=$num"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $json = curl_exec($ch); curl_close($ch); if ($json === false) { return false; } //abort on error //second, convert the resulting json into PHP $result = json_decode($json); date_default_timezone_set('Europe/London'); /* Added from Skidoosh at http://www.skidoosh.co.uk/php/create-twitter-like-date-formatted-strings-with-php/ */ function twitter_time_format ($date) { $blocks = array ( array('year', (3600 * 24 * 365)), array('month', (3600 * 24 * 30)), array('week', (3600 * 24 * 7)), array('day', (3600 * 24)), array('hour', (3600)), array('min', (60)), array('sec', (1)) ); $argtime = strtotime($date); $nowtime = time(); $diff = $nowtime - $argtime; $res = array (); for ($i = 0; $i < count($blocks); $i++) { $title = $blocks[$i][0]; $calc = $blocks[$i][1]; $units = floor($diff / $calc); if ($units > 0) { $res[$title] = $units; } } if (isset($res['year']) && $res['year'] > 0) { if (isset($res['month']) && $res['month'] > 0 && $res['month'] < 12) { $format = "About %s %s %s %s ago"; $year_label = $res['year'] > 1 ? 'years' : 'year'; $month_label = $res['month'] > 1 ? 'months' : 'month'; return sprintf($format, $res['year'], $year_label, $res['month'], $month_label); } else { $format = "About %s %s ago"; $year_label = $res['year'] > 1 ? 'years' : 'year'; return sprintf($format, $res['year'], $year_label); } } if (isset($res['month']) && $res['month'] > 0) { if (isset($res['day']) && $res['day'] > 0 && $res['day'] < 31) { $format = "About %s %s %s %s ago"; $month_label = $res['month'] > 1 ? 'months' : 'month'; $day_label = $res['day'] > 1 ? 'days' : 'day'; return sprintf($format, $res['month'], $month_label, $res['day'], $day_label); } else { $format = "About %s %s ago"; $month_label = $res['month'] > 1 ? 'months' : 'month'; return sprintf($format, $res['month'], $month_label); } } if (isset($res['day']) && $res['day'] > 0) { if ($res['day'] == 1) { return sprintf("Yesterday at %s", date('h:i a', $argtime)); } if ($res['day'] <= 7) { return date("\L\a\s\\t l \a\\t h:i a", $argtime); } if ($res['day'] <= 31) { return date("l \a\\t h:i a", $argtime); } } if (isset($res['hour']) && $res['hour'] > 0) { if ($res['hour'] > 1) { return sprintf("About %s hours ago", $res['hour']); } else { return "About an hour ago"; } } if (isset($res['min']) && $res['min']) { if ($res['min'] == 1) { return "About one minute ago"; } else { return sprintf("About %s minutes ago", $res['min']); } } if (isset ($res['sec']) && $res['sec'] > 0) { if ($res['sec'] == 1) { return "One second ago"; } else { return sprintf("%s seconds ago", $res['sec']); } } } //third, build up the html output $s = ''; foreach ($result as $item) { //handle any special characters $text = htmlentities($item->text, ENT_QUOTES, 'utf-8'); //build the metadata part //$meta = date('g:ia M jS', strtotime($item->created_at)) . ' from ' . $item->source; $meta = twitter_time_format($item->created_at); //parse the tweet text into html $text = preg_replace('@(https?://([-\w\.]+)+(/([\w/_\.]*(\?\S+)?(#\S+)?)?)?)@', '<a href="$1" class="hash">$1</a>', $text); $text = preg_replace('/@(\w+)/', '<a href="http://twitter.com/$1" class="mention">@$1</a>', $text); $text = preg_replace('/\s#(\w+)/', ' <a href="http://search.twitter.com/search?q=%23$1" class="hash" rel="nofollow">#$1</a>', $text); $text = preg_replace('/^#(\w+)/', '<a href="http://search.twitter.com/search?q=%23$1" class="hash" rel="nofollow">#$1</a>', $text); //assemble everything $s .= '<p class="tweetc">' . $text . "</p>\n" . '<p class="tweet_time">' . $meta . "</p>\n"; } return $s; }