2013-03-26 2 views
0

저는 PHP로이 URL을 구성하고 CURL을 사용하여 Flickr에서 결과를 가져 왔습니다.Flickr API는 때때로 false를 반환하지만 일반적으로 작동합니다. 이유가 무엇입니까?

http://api.flickr.com/services/rest?api_key=APIKEY&format=php_serial&method=flickr.photosets.getPhotos&photoset_id=72157594403088940&per_page=200&extras=description,url_l,url_c,url_z,url_m,url_n,url_s,url_t

물론 거기 실제 API 키가 있습니다. 어쨌든 때로는 bool (false)을 반환하고 때로는 적절한 이미지 목록을 반환합니다. 일반적으로 그것은 주어진 날짜에 첫 번째 검사가 false를 반환하는 것과 같고 새로 고침 후에 목록을 올바르게 가져옵니다. 내 결과를 얻기 위해 사용하는 CURL 함수 :

function file_get_contents_curl($url, $curlopt = array()){  
     if(in_array('curl', get_loaded_extensions())){ 
      $ch = curl_init(); 
      $default_curlopt = array(
      CURLOPT_TIMEOUT => 2, 
      CURLOPT_RETURNTRANSFER => 1, 
      CURLOPT_FOLLOWLOCATION => false, 
      CURLOPT_USERAGENT => "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.13) Gecko/20101203 AlexaToolbar/alxf-1.54 Firefox/3.6.13 GTB7.1" 
      ); 
      $curlopt = array(CURLOPT_URL => $url) + $curlopt + $default_curlopt; 
      curl_setopt_array($ch, $curlopt); 
      $response = curl_exec($ch); 
      if($response === false) 
      trigger_error(curl_error($ch)); 
      curl_close($ch); 
      return $response; 
     }else{ 
      return file_get_contents($url); 
     } 
    } 

이것은 무엇이며 왜 발생합니까? 어쩌면 내 CURL 기능과 관련이 있을지 모릅니다.

답변

1

CURLOPT_TIMEOUT을 2 초로 설정했습니다. 실행이 완료되기 전에 코드가 시간 초과되는지 확인할 수 있습니까? 그렇다면 약간 늘려보고 작동하는지 확인하십시오.

그냥 추측하십시오.

+0

PHP 마이크로 타이머만으로 확인할 수 있습니다. 한 번 호출하면 3.3 초가 걸리므로 10으로 설정하면 표시됩니다. 1로 설정하면 특히 200 장의 사진이 포함 된 사진 세트가 실패합니다. – Firsh

관련 문제