2011-04-29 71 views
0

我有一些php代碼檢索一組基於photoset的圖像。我想操作這段代碼,以便從搜索詞中抓取一組圖片。Flickr API搜索?

我知道你可以使用的方法內置到API:flickr.photos.search

只是想知道怎樣才能把它應用到這個代碼

<?php 
    $params = array(
'api_key' => '2292bec0973f91d9f62fb606f85ee031', 
'method' => 'flickr.photosets.getPhotos', 
'photoset_id' => '72157622566216264', 
'extras' => 'original_format', 
'format' => 'php_serial' 
); 
    $encoded_params = array(); 
    foreach ($params as $k => $v){ $encoded_params[] = urlencode($k).'='.urlencode($v); } 

    $ch = curl_init(); 
    $timeout = 5; // set to zero for no timeout 
    curl_setopt ($ch, CURLOPT_URL, 'http://api.flickr.com/services/rest/?'.implode('&',    $encoded_params)); 
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout); 
    $file_contents = curl_exec($ch); 
    curl_close($ch); 

    $rsp_obj = unserialize($file_contents); 

    if ($rsp_obj['stat'] == 'ok') { 

    $photos = $rsp_obj["photoset"]["photo"]; 

echo " 
    <ul>"; 

foreach($photos as $photo) { 

      $farm    = $photo['farm']; 
      $server   = $photo['server']; 
      $photo_id   = $photo['id']; 
      $secret   = $photo['secret']; 
      $photo_title  = $photo['title']; 

     echo '<li><img   src="http://farm'.$photo['farm'].'.static.flickr.com/'.$photo['server'].'/'.$photo['id'].'_'.$photo['secret'].'_t.jpg" alt="'.$photo['title'].'" ></li>'; 

    } 
     echo " 
      </ul> 

      "; 

} else { 
     echo "Error getting photos"; 
    } 
    ?> 
+0

這個問題很難回答。你提供的代碼片段沒有洞察你對它的瞭解程度,以及你從答案中假裝多少。 – ZJR 2011-04-29 19:23:40

+0

這是所有的代碼 - 這個特定的代碼從params數組中定義的photoset抓取來自flickr的圖片陣列。然後將這些參數內插到url上以檢索圖像。我試圖改變它,以便不尋找photoset ID它尋找一個搜索標籤,並通過flickr.photos.search方法。這是預先構建到api中的。我認爲這將是一個簡單的交換某些變量,因爲無論您使用什麼方法,抓取照片肯定都是一樣的。 – DIM3NSION 2011-04-29 19:36:09

回答

3

你閱讀文件? flickr.photos.search

這些方法返回類似的數據,但頂層數組的名稱是不同的(照片photoset)。假定你修改了參數,使用正確的方法,並通過適當的參數,您需要更改的唯一的另一件事是這一行:

$photos = $rsp_obj["photos"]["photo"];