Last week, I stumbled upon a task where I needed to download images from Flickr. I was instructed not to use serialised PHP output formats. They preferred to use REST(Representational State Transfer). I admittedly say that the task was quite new in my case so I had to study how to do it. I didn't even know how to perform the donwloading of these images and then generate the list to my page. Gladly, uniezuke, also a deviantcoder member, guided me on how to do it.
Here's a snippet of what I did. I am going to post it here so others may use it as well.
Flickr Search Result
<?php //THESE WILL DETERMINE AND SET OUR PAGE NUMBER if (empty($_REQUEST['n'])) $pagenum = 1; else $pagenum = $_REQUEST['n']; //THIS IS THE NUMBER OF IMAGES THAT WE WANT TO BE SHOWN PER PAGE $photos = 15; //NOW LET'S CALL OUR URL WHERE WE WILL DOWNLOAD OUR LIST OF IMAGES //HERE'S A SAMPLE URL $url = "http://api.flickr.com/services/rest/"; //DOWNLOAD FROM FLICKR USING REST METHOD $url .= "?method=flickr.photos.search"; //THE API METHOD THAT WE WILL BE USING $url .= "&text=fish"; //ASSUMING WE ARE DOWNLOADING IMAGES RELATED TO THE WORD 'FISH' $url .= "&api_key=5a0bc8881138615f3e5a6e47dff6b596"; //YOUR API KEY. //YOU NEED TO GET THIS BEFORE YOU CAN USE FLICKR API //WE HAVE PROVIDED AN INVALID KEY HERE INTENTIONALLY. //NOW LET'S LOAD OUR XML FILE USING OUR URL AND PAGE NUMBER ABOVE $xml = simplexml_load_file($url."&per_page=$photos&page=$pagenum"); //THIS WILL TELL THE TOTAL IMAGES DOWNLOADED $total = $xml->photos['total']; // NOW LET'S DO OUR PAGINATION $pages = $total % $photos; $pages = ($total + $photos - $pages) / $photos; if (($pagenum * $photos) > $total) $to = $total % $photos; else $to = $photos; // THIS IS THE PART WHERE WE WILL BE PRINTING OUR DOWNLOADED IMAGES // 15 IMAGES PER PAGE (SINCE WE HAVE OUR PAGINATION) for ($k = 0; $k<$to; $k++) { echo '<p><a href="http://www.flickr.com/photos/'.$xml->photos->photo[$k]['owner'].'/'.$xml->photos->photo[$k]['id'].'" target="_blank">'; echo '<img src="'; echo "http://static.flickr.com/"; echo $xml->photos->photo[$k]['server']; echo "/"; echo $xml->photos->photo[$k]['id']; echo "_"; echo $xml->photos->photo[$k]['secret']; echo "_m.jpg"; echo '" alt="'.$xml->photos->photo[$k]['title'].'" border="0">'; echo '</a></p>'; echo '<p><b>' . $xml->photos->photo[$k]['title'] . '</b></p>'; } if ($total == 0) // WE WILL TELL THE USER IS NO RESULT WAS FOUND echo 'Search did not found any image. Please check your inputs.
'; else { // PRINTING PAGE NAVI if ($total > 15) { $back = (empty($_REQUEST['n']) or $_REQUEST['n']==1) ? 1 : $pagenum - 1; $next = ($pagenum == $pages) ? $pagenum : $pagenum + 1; echo ''.BACK.''; echo ''.NEXT.''; } } ?>
Please note that the above code is just a part of a working application. I just want to share how to download images from Flickr using REST method.

