Posted By

jakekimpton on 06/18/11


Tagged

php width feed html xml flickr recent 500 px 500px


Versions (?)

Who likes this?

1 person have marked this snippet as a favorite

FlashBuddy


Flickr Recent Photos to HTML with PHP


 / Published in: PHP
 

URL: http://www.webchase.co.uk/blog/462/flickr-recent-photos-to-html-with-php

It’s been driving me crazy that there’s no definitive script written to take out a user’s Flickr recent photos and parse it for formatting into HTML with a larger size than the standard 75 x 75 dimensions that the public_photo.gne Flickr script outputs. So I’ve written one, using a bit of skill and a snippet of code that someone posted which was kind of going in the same direction but then suddenly stopped and took a hard u-turn, veering off to somewhere stupid, as usual with programmers who know too much. So here’s a quick run through of what the code does:

Collect the User ID that is added manually and constructs the Feed Links Get the File contents of the Feed Link once it’s been run Convert the XML to HTML Return it to the script for printing or a variable (Choice of the Programmer)

I haven’t tested this on different versions of PHP, all I know is it works for me, and it’s using some pretty simple stuff so it should work fine. Just change the ID to your own or whoever’s it has to be and it should run.

  1. function attr($s,$attrname) {
  2. // return html attribute
  3. preg_match_all('#\s*('.$attrname.')\s*=\s*["|\']([^"\']*)["|\']\s*#i', $s, $x);
  4. if (count($x)>=3) return $x[2][0]; else return "";
  5. }
  6.  
  7.  
  8. function getFlickrFeed($id,$n) {
  9.  
  10. $urlenc = urlencode("http://api.flickr.com/services/feeds/photos_public.gne?id=$id&lang=en-us&format=rss_200");
  11. $url = "http://pipes.yahoo.com/pipes/pipe.run?_id=HHvHTP7h2xGPZ1tDdbq02Q&_render=rss&urlinput2=$urlenc";
  12. $s = file_get_contents($url);
  13. preg_match_all('#<item>(.*)</item>#Us', $s, $items);
  14. $out = "";
  15. for($i=0;$i<count($items[1]);$i++) {
  16. if($i>=$n) return $out;
  17. $item = $items[1][$i];
  18. preg_match_all('#<link>(.*)</link>#Us', $item, $temp);
  19. $link = $temp[1][0];
  20. preg_match_all('#<title>(.*)</title>#Us', $item, $temp);
  21. $title = $temp[1][0];
  22. preg_match_all('#<media:thumbnail([^>]*)>#Us', $item, $temp);
  23. $thumb = attr($temp[0][0],"url");
  24.  
  25. $thumb2 = explode("_",$thumb);
  26. $img = $thumb2[0]."_".$thumb2[1].".jpg";
  27. //print $img;
  28. $out.="<a href='$link' target='_blank' title=\"".str_replace('"','',$title)."\"><img src='$img'/></a>";
  29. }
  30. return $out;
  31. }
  32.  
  33. // Example Request with ID and how mant photos required
  34. echo getFlickrFeed("33785122@N08",9);

Report this snippet  

You need to login to post a comment.