0

このURLをPHPで作成し、FlickrからCURLで結果を取得しています。

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関数(私の最善の策)と関係がありますか?

4

1 に答える 1

1

CURLOPT_TIMEOUTを2秒に設定しました。実行が完了する前にコードがタイムアウトするかどうかを確認できますか?もしそうなら、それを少し増やしてみて、それが機能するかどうかを確認してください。

ただの推測。

于 2013-03-26T13:29:06.447 に答える