View Single Post
Khertan's Avatar
Posts: 1,012 | Thanked: 817 times | Joined on Jul 2007 @ France
#5
You can also use the api, and like i do in php to display my tweet on my web site :

Code:
<?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;?>