How to display Twitter updates using PHP (and without using curl)
This is something I needed to do recently. The following code reads a user timeline from Twitter (I’ve chosen the RSS format) and puts the result into a <ul> block. I’ve added a bunch of comments since PHP isn’t what I’d call a self-explanatory language.
<?php $doc = new DOMDocument(); # load the RSS -- replace 'lylo' with your user of choice if($doc->load('http://twitter.com/statuses/user_timeline/lylo.rss')) { echo "<ul>\n"; # number of <li> elements to display. 20 is the maximum $max_tweets = 10; $i = 1; foreach ($doc->getElementsByTagName('item') as $node) { # fetch the title from the RSS feed. # Note: 'pubDate' and 'link' are also useful (I use them in the sidebar of this blog) $tweet = $node->getElementsByTagName('title')->item(0)->nodeValue; # the title of each tweet starts with "username: " which I want to remove $tweet = substr($tweet, stripos($tweet, ':') + 1); # OPTIONAL: turn URLs into links $tweet = preg_replace('@(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)@', '<a href="$1">$1</a>', $tweet); # OPTIONAL: turn @replies into links $tweet = preg_replace("/@([0-9a-zA-Z]+)/", "<a href=\"http://twitter.com/$1\">@$1</a>", $tweet); echo "<li>". $tweet . "</li>\n"; if($i++ >= $max_tweets) break; } echo "</ul>\n"; } ?>
Posted by Olly on February 4, 2009 Comments (14) | Permalink | Comments feed
