Revision: 34430
Updated Code
at November 10, 2010 08:26 by mloberg
Updated Code
<?php // the number of tweets we want to display $tweetsToDisplay = 10; $username = "username"; // make sure you change this to your username $twitterrequest = 'http://api.twitter.com/1/statuses/user_timeline.json?screen_name=' . $username . '&count=' . $tweetsToDisplay; $twitterci = curl_init($twitterrequest); curl_setopt($twitterci,CURLOPT_RETURNTRANSFER, TRUE); $twitterinput = curl_exec($twitterci); curl_close($twitterci); // parameter 'true' is necessary for output as PHP array $tweets = json_decode($twitterinput,true); echo "<h3><a href=\"http://twitter.com/$username\">Twitter Updates</a></h3>"; if(empty($tweets)){ echo "Twitter doesn't seem to be working at the moment."; }else if(!empty($tweets['error'])){ echo "There was an issue with Twitter."; }else{ // Twitter uses the GMT timezone date_default_timezone_set('GMT'); // This is Twitter's response date format $curDate = date('D M d H:i:s O Y'); // then we explode it to use it later list($curDay, $curMonth, $curDayNum, $curTime, $curTimezone, $curYear) = explode(" ",$curDate); $curTimeArray = explode(":", $curTime); // turn the month name into a number $curMonthNum = array("Filler","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"); for($cm=1;$cm<=12;$cm++){ if($curMonthNum[$cm] == $curMonth){ $curMonth = $cm; } } echo "<ul>"; // a quick bug fix, without this extra bullets may be in the list if($tweets[0]['user']['statuses_count'] < $tweetsToDisplay){ $display = $tweets[0]['user']['statuses_count'] - 1; }else{ $display = $tweetsToDisplay - 1; } for($i=0;$i<=$display;$i++){ echo "<li>"; // we are going to check for any links, @users, or #hashtags $tweetText = $tweets[$i]['text'] . "<br />"; if(preg_match('@(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)@',$tweetText,$urlTweet)){ // if there is, replace that match with an actual link $tweetText = preg_replace('@(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)@','<a href="$1">$1</a>',$tweetText); } // check to see if it's a reply if(preg_match('/@([\w]+)/', $tweetText)){ $tweetText = preg_replace('/@([\w]+)/','<a href="http://twitter.com/$1">@$1</a>',$tweetText); } // then check for a hash tag if(preg_match('/\B#(\w*[a-zA-Z]+\w*)/', $tweetText)){ $tweetText = preg_replace('/\B#(\w*[a-zA-Z]+\w*)/', '<a href="http://twitter.com/search?q=%23$1">#$1</a>',$tweetText); } // Finally, we can echo the Tweet echo $tweetText; // then we figure out the time ago it was sent $tweetTime = $tweets[$i]['created_at']; list($day, $month, $dayNum, $time, $timezone, $year) = explode(" ", $tweetTime); $timeArray = explode(":",$time); // Because the month comes in as a string, we need to covert it to a integer $monthNum = array("Filler","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"); for($m=1;$m<=12;$m++){ if($monthNum[$m] == $month){ $month = $m; } } // and then echo it // if the month, day, and hour are the same, echo the minutes ago if($year == $curYear && $month == $curMonth && $dayNum == $curDayNum && $timeArray[0] == $curTimeArray[0]){ $timeAgo = $curTimeArray[1] - $timeArray[1]; if($timeAgo == 0){ echo "Sent less then a minute ago"; }else if($timeAgo == 1){ echo "Sent one minute ago"; }else if($timeAgo > 50){ echo "Sent about an hour ago"; }else{ echo "Sent " . $timeAgo . " minutes ago"; } // if it was less then a day ago, echo the hours ago }else if($year == $curYear && $month == $curMonth && $dayNum == $curDayNum){ $timeAgo = $curTimeArray[0] - $timeArray[0]; if($timeAgo > 22){ echo "Sent about a day ago"; }else if($timeAgo ==1){ echo "Sent an hour ago"; }else{ echo "Sent " . $timeAgo . " hours ago"; } }else if($year == $curYear && $month == $curMonth){ $timeAgo = $curDayNum - $dayNum; if($timeAgo > 29){ echo "Sent about a month ago"; }else if($timeAgo == 1){ echo "Sent a day ago"; }else{ echo "Sent " . $timeAgo . " days ago"; } }else if($year == $curYear){ $timeAgo = $curMonth - $month; if($timeAgo == 1){ echo "Sent one month ago"; }else{ echo "Sent " . $timeAgo . " months ago"; } }else{ $timeAgo = $curYear - $year; if($timeAgo == 1){ echo "Sent " . $timeAgo . " year ago"; }else{ echo "Sent " . $timeAgo . " years ago"; } } // if it's a reply, append a "In reply to at the end" if($tweets[$i]['in_reply_to_screen_name'] !== NULL){ echo " in reply to <a href=\"http://twitter.com/" . $tweets[$i]['in_reply_to_screen_name'] . "\">" . $tweets[$i]['in_reply_to_screen_name'] . "</a>."; }else{ echo "."; } echo "</li>"; } echo "</ul>"; echo "<p><a href=\"http://twitter.com/$username\">Follow Me</a></p>"; } ?>
Revision: 34429
Updated Code
at November 10, 2010 08:08 by mloberg
Updated Code
<?php // the number of tweets we want to display $tweetsToDisplay = 10; $username = "username"; // make sure you change this to your username $twitterrequest = 'http://api.twitter.com/1/statuses/user_timeline.json?screen_name=' . $username . '&count=' . $tweetsToDisplay; $twitterci = curl_init($twitterrequest); curl_setopt($twitterci,CURLOPT_RETURNTRANSFER, TRUE); $twitterinput = curl_exec($twitterci); curl_close($twitterci); // parameter 'true' is necessary for output as PHP array $tweets = json_decode($twitterinput,true); echo "<h3><a href=\"http://twitter.com/$username\">Twitter Updates</a></h3>"; if(empty($tweets)){ echo "Twitter doesn't seem to be working at the moment."; }else if(!empty($tweets['error'])){ echo "There was an issue with Twitter."; }else{ // Twitter uses the GMT timezone date_default_timezone_set('GMT'); // This is Twitter's response date format $curDate = date('D M d H:i:s O Y'); // then we explode it to use it later list($curDay, $curMonth, $curDayNum, $curTime, $curTimezone, $curYear) = explode(" ",$curDate); $curTimeArray = explode(":", $curTime); // turn the month name into a number $curMonthNum = array("Filler","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"); for($cm=1;$cm<=12;$cm++){ if($curMonthNum[$cm] == $curMonth){ $curMonth = $cm; } } echo "<ul>"; // a quick bug fix, without this extra bullets may be in the list if($tweets[0]['user']['statuses_count'] < $tweetsToDisplay){ $display = $tweets[0]['user']['statuses_count'] - 1; }else{ $display = $tweetsToDisplay - 1; } for($i=0;$i<=$display;$i++){ echo "<li>"; // we are going to check for any links, @users, or #hashtags $tweetText = $tweets[$i]['text'] . "<br />"; if(preg_match('@(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)@',$tweetText,$urlTweet)){ // if there is, replace that match with an actual link $tweetText = preg_replace('@(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)@','<a href="$1">$1</a>',$tweetText); } // check to see if it's a reply if(preg_match('/@([\w]+)/', $tweetText)){ $tweetText = preg_replace('/@([\w]+)/','<a href="http://twitter.com/$1">@$1</a>',$tweetText); } // then check for a hash tag if(preg_match('/\B#(\w*[a-zA-Z]+\w*)/', $tweetText)){ $tweetText = preg_replace('/\B#(\w*[a-zA-Z]+\w*)/', '<a href="http://twitter.com/search?q=%23$1">#$1</a>',$tweetText); } // Finally, we can echo the Tweet echo $tweetText; // then we figure out the time ago it was sent $tweetTime = $tweets[$i]['created_at']; list($day, $month, $dayNum, $time, $timezone, $year) = explode(" ", $tweetTime); $timeArray = explode(":",$time); // Because the month comes in as a string, we need to covert it to a integer $monthNum = array("Filler","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"); for($m=1;$m<=12;$m++){ if($monthNum[$m] == $month){ $month = $m; } } // and then echo it // if the month, day, and hour are the same, echo the minutes ago if($year == $curYear && $month == $curMonth && $dayNum == $curDayNum && $timeArray[0] == $curTimeArray[0]){ $timeAgo = $curTimeArray[1] - $timeArray[1]; if($timeAgo == 0){ echo "Sent less then a minute ago"; }else if($timeAgo == 1){ echo "Sent one minute ago"; }else if($timeAgo > 50){ echo "Sent about an hour ago"; }else{ echo "Sent " . $timeAgo . " minutes ago"; } // if it was less then a day ago, echo the hours ago }else if($year == $curYear && $month == $curMonth && $dayNum == $curDayNum){ $timeAgo = $curTimeArray[0] - $timeArray[0]; if($timeAgo > 22){ echo "Sent about a day ago"; }else if($timeAgo ==1){ echo "Sent an hour ago"; }else{ echo "Sent " . $timeAgo . " hours ago"; } }else if($year == $curYear && $month == $curMonth){ $timeAgo = $curDayNum - $dayNum; if($timeAgo > 29){ echo "Sent about a month ago"; }else if($timeAgo == 1){ echo "Sent a day ago"; }else{ echo "Sent " . $timeAgo . " days ago"; } }else if($year == $curYear){ $timeAgo = $curMonth - $month; if($timeAgo == 1){ echo "Sent one month ago"; }else{ echo "Sent " . $timeAgo . " months ago"; } }else{ $timeAgo = $curYear - $year; if($timeAgo == 1){ echo "Sent " . $timeAgo . " year ago"; }else{ echo "Sent " . $timeAgo . " years ago"; } } // if it's a reply, append a "In reply to at the end" if($tweets[$i]['in_reply_to_screen_name'] !== NULL){ echo " in reply to <a href=\"http://twitter.com/$tweets[$i]['in_reply_to_screen_name']\">" . $tweets[$i]['in_reply_to_screen_name'] . "</a>."; }else{ echo "."; } echo "</li>"; } echo "</ul>"; echo "<p><a href=\"http://twitter.com/$username\">Follow Me</a></p>"; } ?>
Revision: 34428
Updated Code
at October 23, 2010 06:50 by mloberg
Updated Code
<?php // the number of videos we want to display $tweetsToDisplay = 10; $username = "username"; // make sure you change this to your username $twitterrequest = 'http://api.twitter.com/1/statuses/user_timeline.json?screen_name=' . $username . '&count=' . $tweetsToDisplay; $twitterci = curl_init($twitterrequest); curl_setopt($twitterci,CURLOPT_RETURNTRANSFER, TRUE); $twitterinput = curl_exec($twitterci); curl_close($twitterci); // parameter 'true' is necessary for output as PHP array $tweets = json_decode($twitterinput,true); echo "<h3><a href=\"http://twitter.com/$username\">Twitter Updates</a></h3>"; if(empty($tweets)){ echo "Twitter doesn't seem to be working at the moment."; }else if(!empty($tweets['error'])){ echo "There was an issue with Twitter."; }else{ // Twitter uses the GMT timezone date_default_timezone_set('GMT'); // This is Twitter's response date format $curDate = date('D M d H:i:s O Y'); // then we explode it to use it later list($curDay, $curMonth, $curDayNum, $curTime, $curTimezone, $curYear) = explode(" ",$curDate); $curTimeArray = explode(":", $curTime); // turn the month name into a number $curMonthNum = array("Filler","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"); for($cm=1;$cm<=12;$cm++){ if($curMonthNum[$cm] == $curMonth){ $curMonth = $cm; } } echo "<ul>"; // a quick bug fix, without this extra bullets may be in the list if($tweets[0]['user']['statuses_count'] < $tweetsToDisplay){ $display = $tweets[0]['user']['statuses_count'] - 1; }else{ $display = $tweetsToDisplay - 1; } for($i=0;$i<=$display;$i++){ echo "<li>"; // we are going to check for any links, @users, or #hashtags $tweetText = $tweets[$i]['text'] . "<br />"; if(preg_match('@(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)@',$tweetText,$urlTweet)){ // if there is, replace that match with an actual link $tweetText = preg_replace('@(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)@','<a href="$1">$1</a>',$tweetText); } // check to see if it's a reply if(preg_match('/@([\w]+)/', $tweetText)){ $tweetText = preg_replace('/@([\w]+)/','<a href="http://twitter.com/$1">@$1</a>',$tweetText); } // then check for a hash tag if(preg_match('/\B#(\w*[a-zA-Z]+\w*)/', $tweetText)){ $tweetText = preg_replace('/\B#(\w*[a-zA-Z]+\w*)/', '<a href="http://twitter.com/search?q=%23$1">#$1</a>',$tweetText); } // Finally, we can echo the Tweet echo $tweetText; // then we figure out the time ago it was sent $tweetTime = $tweets[$i]['created_at']; list($day, $month, $dayNum, $time, $timezone, $year) = explode(" ", $tweetTime); $timeArray = explode(":",$time); // Because the month comes in as a string, we need to covert it to a integer $monthNum = array("Filler","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"); for($m=1;$m<=12;$m++){ if($monthNum[$m] == $month){ $month = $m; } } // and then echo it // if the month, day, and hour are the same, echo the minutes ago if($year == $curYear && $month == $curMonth && $dayNum == $curDayNum && $timeArray[0] == $curTimeArray[0]){ $timeAgo = $curTimeArray[1] - $timeArray[1]; if($timeAgo == 0){ echo "Sent less then a minute ago"; }else if($timeAgo == 1){ echo "Sent one minute ago"; }else if($timeAgo > 50){ echo "Sent about an hour ago"; }else{ echo "Sent " . $timeAgo . " minutes ago"; } // if it was less then a day ago, echo the hours ago }else if($year == $curYear && $month == $curMonth && $dayNum == $curDayNum){ $timeAgo = $curTimeArray[0] - $timeArray[0]; if($timeAgo > 22){ echo "Sent about a day ago"; }else if($timeAgo ==1){ echo "Sent an hour ago"; }else{ echo "Sent " . $timeAgo . " hours ago"; } }else if($year == $curYear && $month == $curMonth){ $timeAgo = $curDayNum - $dayNum; if($timeAgo > 29){ echo "Sent about a month ago"; }else if($timeAgo == 1){ echo "Sent a day ago"; }else{ echo "Sent " . $timeAgo . " days ago"; } }else if($year == $curYear){ $timeAgo = $curMonth - $month; if($timeAgo == 1){ echo "Sent one month ago"; }else{ echo "Sent " . $timeAgo . " months ago"; } }else{ $timeAgo = $curYear - $year; if($timeAgo == 1){ echo "Sent " . $timeAgo . " year ago"; }else{ echo "Sent " . $timeAgo . " years ago"; } } // if it's a reply, append a "In reply to at the end" if($tweets[$i]['in_reply_to_screen_name'] !== NULL){ echo " in reply to <a href=\"http://twitter.com/$tweets[$i]['in_reply_to_screen_name']\">" . $tweets[$i]['in_reply_to_screen_name'] . "</a>."; }else{ echo "."; } echo "</li>"; } echo "</ul>"; echo "<p><a href=\"http://twitter.com/$username\">Follow Me</a></p>"; } ?>
Revision: 34427
Updated Code
at October 22, 2010 13:40 by mloberg
Updated Code
<?php // the number of videos we want to display $tweetsToDisplay = 10; $username = "username"; // make sure you change this to your username $twitterrequest = 'http://api.twitter.com/1/statuses/user_timeline.json?screen_name=' . $username . '&count=' . $tweetsToDisplay; $twitterci = curl_init($twitterrequest); curl_setopt($twitterci,CURLOPT_RETURNTRANSFER, TRUE); $twitterinput = curl_exec($twitterci); // parameter 'true' is necessary for output as PHP array $tweets = json_decode($twitterinput,true); echo "<h3><a href=\"http://twitter.com/$username\">Twitter Updates</a></h3>"; if(empty($tweets)){ echo "Twitter doesn't seem to be working at the moment."; }else if(!empty($tweets['error'])){ echo "There was an issue with Twitter."; }else{ // Twitter uses the GMT timezone date_default_timezone_set('GMT'); // This is Twitter's response date format $curDate = date('D M d H:i:s O Y'); // then we explode it to use it later list($curDay, $curMonth, $curDayNum, $curTime, $curTimezone, $curYear) = explode(" ",$curDate); $curTimeArray = explode(":", $curTime); // turn the month name into a number $curMonthNum = array("Filler","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"); for($cm=1;$cm<=12;$cm++){ if($curMonthNum[$cm] == $curMonth){ $curMonth = $cm; } } echo "<ul>"; // a quick bug fix, without this extra bullets may be in the list if($tweets[0]['user']['statuses_count'] < $tweetsToDisplay){ $display = $tweets[0]['user']['statuses_count'] - 1; }else{ $display = $tweetsToDisplay - 1; } for($i=0;$i<=$display;$i++){ echo "<li>"; // we are going to check for any links, @users, or #hashtags $tweetText = $tweets[$i]['text'] . "<br />"; if(preg_match('@(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)@',$tweetText,$urlTweet)){ // if there is, replace that match with an actual link $tweetText = preg_replace('@(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)@','<a href="$1">$1</a>',$tweetText); } // check to see if it's a reply if(preg_match('/@([\w]+)/', $tweetText)){ $tweetText = preg_replace('/@([\w]+)/','<a href="http://twitter.com/$1">@$1</a>',$tweetText); } // then check for a hash tag if(preg_match('/\B#(\w*[a-zA-Z]+\w*)/', $tweetText)){ $tweetText = preg_replace('/\B#(\w*[a-zA-Z]+\w*)/', '<a href="http://twitter.com/search?q=%23$1">#$1</a>',$tweetText); } // Finally, we can echo the Tweet echo $tweetText; // then we figure out the time ago it was sent $tweetTime = $tweets[$i]['created_at']; list($day, $month, $dayNum, $time, $timezone, $year) = explode(" ", $tweetTime); $timeArray = explode(":",$time); // Because the month comes in as a string, we need to covert it to a integer $monthNum = array("Filler","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"); for($m=1;$m<=12;$m++){ if($monthNum[$m] == $month){ $month = $m; } } // and then echo it // if the month, day, and hour are the same, echo the minutes ago if($year == $curYear && $month == $curMonth && $dayNum == $curDayNum && $timeArray[0] == $curTimeArray[0]){ $timeAgo = $curTimeArray[1] - $timeArray[1]; if($timeAgo == 0){ echo "Sent less then a minute ago"; }else if($timeAgo == 1){ echo "Sent one minute ago"; }else if($timeAgo > 50){ echo "Sent about an hour ago"; }else{ echo "Sent " . $timeAgo . " minutes ago"; } // if it was less then a day ago, echo the hours ago }else if($year == $curYear && $month == $curMonth && $dayNum == $curDayNum){ $timeAgo = $curTimeArray[0] - $timeArray[0]; if($timeAgo > 22){ echo "Sent about a day ago"; }else if($timeAgo ==1){ echo "Sent an hour ago"; }else{ echo "Sent " . $timeAgo . " hours ago"; } }else if($year == $curYear && $month == $curMonth){ $timeAgo = $curDayNum - $dayNum; if($timeAgo > 29){ echo "Sent about a month ago"; }else if($timeAgo == 1){ echo "Sent a day ago"; }else{ echo "Sent " . $timeAgo . " days ago"; } }else if($year == $curYear){ $timeAgo = $curMonth - $month; if($timeAgo == 1){ echo "Sent one month ago"; }else{ echo "Sent " . $timeAgo . " months ago"; } }else{ $timeAgo = $curYear - $year; if($timeAgo == 1){ echo "Sent " . $timeAgo . " year ago"; }else{ echo "Sent " . $timeAgo . " years ago"; } } // if it's a reply, append a "In reply to at the end" if($tweets[$i]['in_reply_to_screen_name'] !== NULL){ echo " in reply to <a href=\"http://twitter.com/$tweets[$i]['in_reply_to_screen_name']\">" . $tweets[$i]['in_reply_to_screen_name'] . "</a>."; }else{ echo "."; } echo "</li>"; } echo "</ul>"; echo "<p><a href=\"http://twitter.com/$username\">Follow Me</a></p>"; } ?>
Revision: 34426
Updated Code
at October 22, 2010 06:26 by mloberg
Updated Code
<?php // the number of videos we want to display $tweetsToDisplay = 10; $username = "username"; // make sure you change this to your username $twitterrequest = 'http://api.twitter.com/1/statuses/user_timeline.json?screen_name=' . $username . '&count=' . $tweetsToDisplay; $twitterci = curl_init($twitterrequest); curl_setopt($twitterci,CURLOPT_RETURNTRANSFER, TRUE); $twitterinput = curl_exec($twitterci); // parameter 'true' is necessary for output as PHP array $tweets = json_decode($twitterinput,true); echo "<h3><a href=\"http://twitter.com/$username\">Twitter Updates</a></h3>"; if(empty($tweets)){ echo "Twitter doesn't seem to be working at the moment."; }else if(!empty($tweets['error'])){ echo "There was an issue with Twitter."; }else{ // Twitter uses the GMT timezone date_default_timezone_set('GMT'); // This is Twitter's response date format $curDate = date('D M d H:i:s O Y'); // then we explode it to use it later list($curDay, $curMonth, $curDayNum, $curTime, $curTimezone, $curYear) = explode(" ",$curDate); $curTimeArray = explode(":", $curTime); // turn the month name into a number $curMonthNum = array("Filler","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"); for($cm=1;$cm<=12;$cm++){ if($curMonthNum[$cm] == $curMonth){ $curMonth = $cm; } } echo "<ul>"; // a quick bug fix, without this extra bullets may be in the list if($tweets[0]['user']['statuses_count'] < $tweetsToDisplay){ $display = $tweets[0]['user']['statuses_count'] - 1; }else{ $display = $tweetsToDisplay - 1; } for($i=0;$i<=$display;$i++){ echo "<li>"; // we are going to check for any links, @users, or #hashtags $tweetText = $tweets[$i]['text'] . "<br />"; if(preg_match('@(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)@',$tweetText,$urlTweet)){ // if there is, replace that match with an actual link $tweetText = preg_replace('@(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)@','<a href="$1">$1</a>',$tweetText); } // check to see if it's a reply if(preg_match('/@([\w]+)/', $tweetText)){ $tweetText = preg_replace('/@([\w]+)/','<a href="http://twitter.com/$1">@$1</a>',$tweetText); } // then check for a hash tag // coming soon // Finally, we can echo the Tweet echo $tweetText; // then we figure out the time ago it was sent $tweetTime = $tweets[$i]['created_at']; list($day, $month, $dayNum, $time, $timezone, $year) = explode(" ", $tweetTime); $timeArray = explode(":",$time); // Because the month comes in as a string, we need to covert it to a integer $monthNum = array("Filler","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"); for($m=1;$m<=12;$m++){ if($monthNum[$m] == $month){ $month = $m; } } // and then echo it // if the month, day, and hour are the same, echo the minutes ago if($year == $curYear && $month == $curMonth && $dayNum == $curDayNum && $timeArray[0] == $curTimeArray[0]){ $timeAgo = $curTimeArray[1] - $timeArray[1]; if($timeAgo == 0){ echo "Sent less then a minute ago"; }else if($timeAgo == 1){ echo "Sent one minute ago"; }else if($timeAgo > 50){ echo "Sent about an hour ago"; }else{ echo "Sent " . $timeAgo . " minutes ago"; } // if it was less then a day ago, echo the hours ago }else if($year == $curYear && $month == $curMonth && $dayNum == $curDayNum){ $timeAgo = $curTimeArray[0] - $timeArray[0]; if($timeAgo > 22){ echo "Sent about a day ago"; }else if($timeAgo ==1){ echo "Sent an hour ago"; }else{ echo "Sent " . $timeAgo . " hours ago"; } }else if($year == $curYear && $month == $curMonth){ $timeAgo = $curDayNum - $dayNum; if($timeAgo > 29){ echo "Sent about a month ago"; }else if($timeAgo == 1){ echo "Sent a day ago"; }else{ echo "Sent " . $timeAgo . " days ago"; } }else if($year == $curYear){ $timeAgo = $curMonth - $month; if($timeAgo == 1){ echo "Sent one month ago"; }else{ echo "Sent " . $timeAgo . " months ago"; } }else{ $timeAgo = $curYear - $year; if($timeAgo == 1){ echo "Sent " . $timeAgo . " year ago"; }else{ echo "Sent " . $timeAgo . " years ago"; } } // if it's a reply, append a "In reply to at the end" if($tweets[$i]['in_reply_to_screen_name'] !== NULL){ echo " in reply to <a href=\"http://twitter.com/$tweets[$i]['in_reply_to_screen_name']\">" . $tweets[$i]['in_reply_to_screen_name'] . "</a>."; }else{ echo "."; } echo "</li>"; } echo "</ul>"; echo "<p><a href=\"http://twitter.com/$username\">Follow Me</a></p>"; } ?>
Revision: 34425
Updated Code
at October 22, 2010 06:22 by mloberg
Updated Code
<?php // the number of videos we want to display $tweetsToDisplay = 10; $username = $text; $twitterrequest = 'http://api.twitter.com/1/statuses/user_timeline.json?screen_name=' . $username . '&count=' . $tweetsToDisplay; $twitterci = curl_init($twitterrequest); curl_setopt($twitterci,CURLOPT_RETURNTRANSFER, TRUE); $twitterinput = curl_exec($twitterci); // parameter 'true' is necessary for output as PHP array $tweets = json_decode($twitterinput,true); echo "<h3><a href=\"http://twitter.com/$username\">Twitter Updates</a></h3>"; if(empty($tweets)){ echo "Twitter doesn't seem to be working at the moment."; }else if(!empty($tweets['error'])){ echo "There was an issue with Twitter."; }else{ // Twitter uses the GMT timezone date_default_timezone_set('GMT'); // This is Twitter's response date format $curDate = date('D M d H:i:s O Y'); // then we explode it to use it later list($curDay, $curMonth, $curDayNum, $curTime, $curTimezone, $curYear) = explode(" ",$curDate); $curTimeArray = explode(":", $curTime); // turn the month name into a number $curMonthNum = array("Filler","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"); for($cm=1;$cm<=12;$cm++){ if($curMonthNum[$cm] == $curMonth){ $curMonth = $cm; } } echo "<ul>"; // a quick bug fix, without this extra bullets may be in the list if($tweets[0]['user']['statuses_count'] < $tweetsToDisplay){ $display = $tweets[0]['user']['statuses_count'] - 1; }else{ $display = $tweetsToDisplay - 1; } for($i=0;$i<=$display;$i++){ echo "<li>"; // we are going to check for any links, @users, or #hashtags $tweetText = $tweets[$i]['text'] . "<br />"; if(preg_match('@(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)@',$tweetText,$urlTweet)){ // if there is, replace that match with an actual link $tweetText = preg_replace('@(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)@','<a href="$1">$1</a>',$tweetText); } // check to see if it's a reply if(preg_match('/@([\w]+)/', $tweetText)){ $tweetText = preg_replace('/@([\w]+)/','<a href="http://twitter.com/$1">@$1</a>',$tweetText); } // then check for a hash tag // coming soon // Finally, we can echo the Tweet echo $tweetText; // then we figure out the time ago it was sent $tweetTime = $tweets[$i]['created_at']; list($day, $month, $dayNum, $time, $timezone, $year) = explode(" ", $tweetTime); $timeArray = explode(":",$time); // Because the month comes in as a string, we need to covert it to a integer $monthNum = array("Filler","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"); for($m=1;$m<=12;$m++){ if($monthNum[$m] == $month){ $month = $m; } } // and then echo it // if the month, day, and hour are the same, echo the minutes ago if($year == $curYear && $month == $curMonth && $dayNum == $curDayNum && $timeArray[0] == $curTimeArray[0]){ $timeAgo = $curTimeArray[1] - $timeArray[1]; if($timeAgo == 0){ echo "Sent less then a minute ago"; }else if($timeAgo == 1){ echo "Sent one minute ago"; }else if($timeAgo > 50){ echo "Sent about an hour ago"; }else{ echo "Sent " . $timeAgo . " minutes ago"; } // if it was less then a day ago, echo the hours ago }else if($year == $curYear && $month == $curMonth && $dayNum == $curDayNum){ $timeAgo = $curTimeArray[0] - $timeArray[0]; if($timeAgo > 22){ echo "Sent about a day ago"; }else if($timeAgo ==1){ echo "Sent an hour ago"; }else{ echo "Sent " . $timeAgo . " hours ago"; } }else if($year == $curYear && $month == $curMonth){ $timeAgo = $curDayNum - $dayNum; if($timeAgo > 29){ echo "Sent about a month ago"; }else if($timeAgo == 1){ echo "Sent a day ago"; }else{ echo "Sent " . $timeAgo . " days ago"; } }else if($year == $curYear){ $timeAgo = $curMonth - $month; if($timeAgo == 1){ echo "Sent one month ago"; }else{ echo "Sent " . $timeAgo . " months ago"; } }else{ $timeAgo = $curYear - $year; if($timeAgo == 1){ echo "Sent " . $timeAgo . " year ago"; }else{ echo "Sent " . $timeAgo . " years ago"; } } // if it's a reply, append a "In reply to at the end" if($tweets[$i]['in_reply_to_screen_name'] !== NULL){ echo " in reply to <a href=\"http://twitter.com/$tweets[$i]['in_reply_to_screen_name']\">" . $tweets[$i]['in_reply_to_screen_name'] . "</a>."; }else{ echo "."; } echo "</li>"; } echo "</ul>"; echo "<p><a href=\"http://twitter.com/$username\">Follow Me</a></p>"; } ?>
Revision: 34424
Updated Code
at October 22, 2010 05:48 by mloberg
Updated Code
<?php // the number of videos we want to display $tweetsToDisplay = 10; $username = "username"; // make sure to change this to your username $twitterrequest = 'http://api.twitter.com/1/statuses/user_timeline.json?screen_name=' . $username . '&count=' . $tweetsToDisplay; $twitterci = curl_init($twitterrequest); curl_setopt($twitterci,CURLOPT_RETURNTRANSFER, TRUE); $twitterinput = curl_exec($twitterci); // parameter 'true' is necessary for output as PHP array $tweets = json_decode($twitterinput,true); // Twitter uses the GMT timezone date_default_timezone_set('GMT'); // This is Twitter's response date format $curDate = date('D M d H:i:s O Y'); // then we explode it to use it later list($curDay, $curMonth, $curDayNum, $curTime, $curTimezone, $curYear) = explode(" ",$curDate); $curTimeArray = explode(":", $curTime); // turn the month name into a number $curMonthNum = array("Filler","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"); for($cm=1;$cm<=12;$cm++){ if($curMonthNum[$cm] == $curMonth){ $curMonth = $cm; } } echo "<h3><a href=\"http://twitter.com/$username\">Twitter Updates</a></h3>"; echo "<ul>"; // a quick bug fix, without this extra bullets may be in the list if($tweets[0]['user']['statuses_count'] < $tweetsToDisplay){ $display = $tweets[0]['user']['statuses_count'] - 1; }else{ $display = $tweetsToDisplay - 1; } for($i=0;$i<=$display;$i++){ echo "<li>"; // we are going to check for any links, @users, or #hashtags $tweetText = $tweets[$i]['text'] . "<br />"; if(preg_match('@(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)@',$tweetText,$urlTweet)){ // if there is, replace that match with an actual link $tweetText = preg_replace('@(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)@','<a href="$1">$1</a>',$tweetText); } // check to see if it's a reply if(preg_match('/@([\w]+)/', $tweetText)){ $tweetText = preg_replace('/@([\w]+)/','<a href="http://twitter.com/$1">@$1</a>',$tweetText); } // then check for a hash tag // Finally, we can echo the Tweet echo $tweetText; // then we figure out the time ago it was sent $tweetTime = $tweets[$i]['created_at']; list($day, $month, $dayNum, $time, $timezone, $year) = explode(" ", $tweetTime); $timeArray = explode(":",$time); // Because the month comes in as a string, we need to covert it to a integer $monthNum = array("Filler","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"); for($m=1;$m<=12;$m++){ if($monthNum[$m] == $month){ $month = $m; } } // and then echo it // if the month, day, and hour are the same, echo the minutes ago if($year == $curYear && $month == $curMonth && $dayNum == $curDayNum && $timeArray[0] == $curTimeArray[0]){ $timeAgo = $curTimeArray[1] - $timeArray[1]; if($timeAgo == 0){ echo "Sent less then a minute ago"; }else if($timeAgo == 1){ echo "Sent one minute ago"; }else if($timeAgo > 50){ echo "Sent about an hour ago"; }else{ echo "Sent " . $timeAgo . " minutes ago"; } // if it was less then a day ago, echo the hours ago }else if($year == $curYear && $month == $curMonth && $dayNum == $curDayNum){ $timeAgo = $curTimeArray[0] - $timeArray[0]; if($timeAgo > 22){ echo "Sent about a day ago"; }else if($timeAgo ==1){ echo "Sent an hour ago"; }else{ echo "Sent " . $timeAgo . " hours ago"; } }else if($year == $curYear && $month == $curMonth){ $timeAgo = $curDayNum - $dayNum; if($timeAgo > 29){ echo "Sent about a month ago"; }else if($timeAgo == 1){ echo "Sent a day ago"; }else{ echo "Sent " . $timeAgo . " days ago"; } }else if($year == $curYear){ $timeAgo = $curMonth - $month; if($timeAgo == 1){ echo "Sent one month ago"; }else{ echo "Sent " . $timeAgo . " months ago"; } }else{ $timeAgo = $curYear - $year; if($timeAgo == 1){ echo "Sent " . $timeAgo . " year ago"; }else{ echo "Sent " . $timeAgo . " years ago"; } } // if it's a reply, append a "In reply to at the end" if($tweets[$i]['in_reply_to_screen_name'] !== NULL){ echo " in reply to <a href=\"http://twitter.com/$tweets[$i]['in_reply_to_screen_name']\">" . $tweets[$i]['in_reply_to_screen_name'] . "</a>."; }else{ echo "."; } echo "</li>"; } echo "</ul>"; echo "<p><a href=\"http://twitter.com/$username\">Follow Me</a></p>" ?>
Revision: 34423
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at October 22, 2010 05:37 by mloberg
Initial Code
<?php // the number of videos we want to display $tweetsToDisplay = 10; $username = "username"; // make sure to change this to your username $twitterrequest = 'http://api.twitter.com/1/statuses/user_timeline.json?screen_name=' . $username . '&count=' . $tweetsToDisplay; $twitterci = curl_init($twitterrequest); curl_setopt($twitterci,CURLOPT_RETURNTRANSFER, TRUE); $twitterinput = curl_exec($twitterci); // parameter 'true' is necessary for output as PHP array $tweets = json_decode($twitterinput,true); // Twitter uses the GMT timezone date_default_timezone_set('GMT'); // This is Twitter's response date format $curDate = date('D M d H:i:s O Y'); // then we explode it to use it later list($curDay, $curMonth, $curDayNum, $curTime, $curTimezone, $curYear) = explode(" ",$curDate); $curTimeArray = explode(":", $curTime); // turn the month name into a number $curMonthNum = array("Filler","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"); for($cm=1;$cm<=12;$cm++){ if($curMonthNum[$cm] == $curMonth){ $curMonth = $cm; } } echo "<h3><a href=\"http://twitter.com/$username\">Twitter Updates</a></h3>"; echo "<ul>"; // a quick bug fix, without this an extra bullet would be in the list $display = $tweetsToDisplay - 1; for($i=0;$i<=$display;$i++){ echo "<li>"; // we are going to check for any links, @users, or #hashtags $tweetText = $tweets[$i]['text'] . "<br />"; if(preg_match('@(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)@',$tweetText,$urlTweet)){ // if there is, replace that match with an actual link $tweetText = preg_replace('@(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)@','<a href="$1">$1</a>',$tweetText); } // check to see if it's a reply if(preg_match('/@([\w]+)/', $tweetText)){ $tweetText = preg_replace('/@([\w]+)/','<a href="http://twitter.com/$1">@$1</a>',$tweetText); } // then check for a hash tag // Finally, we can echo the Tweet echo $tweetText; // then we figure out the time ago it was sent $tweetTime = $tweets[$i]['created_at']; list($day, $month, $dayNum, $time, $timezone, $year) = explode(" ", $tweetTime); $timeArray = explode(":",$time); // Because the month comes in as a string, we need to covert it to a integer $monthNum = array("Filler","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"); for($m=1;$m<=12;$m++){ if($monthNum[$m] == $month){ $month = $m; } } // and then echo it // if the month, day, and hour are the same, echo the minutes ago if($year == $curYear && $month == $curMonth && $dayNum == $curDayNum && $timeArray[0] == $curTimeArray[0]){ $timeAgo = $curTimeArray[1] - $timeArray[1]; if($timeAgo == 0){ echo "Sent less then a minute ago"; }else if($timeAgo == 1){ echo "Sent one minute ago"; }else if($timeAgo > 50){ echo "Sent about an hour ago"; }else{ echo "Sent " . $timeAgo . " minutes ago"; } // if it was less then a day ago, echo the hours ago }else if($year == $curYear && $month == $curMonth && $dayNum == $curDayNum){ $timeAgo = $curTimeArray[0] - $timeArray[0]; if($timeAgo > 22){ echo "Sent about a day ago"; }else if($timeAgo ==1){ echo "Sent an hour ago"; }else{ echo "Sent " . $timeAgo . " hours ago"; } }else if($year == $curYear && $month == $curMonth){ $timeAgo = $curDayNum - $dayNum; if($timeAgo > 29){ echo "Sent about a month ago"; }else if($timeAgo == 1){ echo "Sent a day ago"; }else{ echo "Sent " . $timeAgo . " days ago"; } }else if($year == $curYear){ $timeAgo = $curMonth - $month; if($timeAgo == 1){ echo "Sent one month ago"; }else{ echo "Sent " . $timeAgo . " months ago"; } }else{ $timeAgo = $curYear - $year; if($timeAgo == 1){ echo "Sent " . $timeAgo . " year ago"; }else{ echo "Sent " . $timeAgo . " years ago"; } } // if it's a reply, append a "In reply to at the end" if($tweets[$i]['in_reply_to_screen_name'] !== NULL){ echo " in reply to <a href=\"http://twitter.com/$tweets[$i]['in_reply_to_screen_name']\">" . $tweets[$i]['in_reply_to_screen_name'] . "</a>."; }else{ echo "."; } echo "</li>"; } echo "</ul>"; echo "<p><a href=\"http://twitter.com/$username\">Follow Me</a></p>" ?>
Initial URL
Initial Description
A Twitter pull-in that I coded using PHP. Uses the JSON user_timeline Twitter API call. It displays the tweet with links to any urls, users, or hashtags, the time ago, and if it was in reply to anyone.
Initial Title
Twitter PHP Script
Initial Tags
php, json, twitter
Initial Language
PHP