2011-12-16 12 views
1

データベースからURLを取得し、ローカルファイルにダウンロードする(pdfまたはjpg)スクリプトがあります。PHP/cURLを使用したリモートファイルのダウンロード:もう少し堅牢

コードは次のとおりです。

$cp = curl_init($remote_url); 
    $fp = fopen($dest_temp, "w"); 
    @curl_setopt($cp, CURLOPT_FILE, $fp); 
    @curl_setopt($ch, CURLOPT_HEADER, TRUE); 
    curl_exec($cp); 
    curl_close($cp); 
    fclose($fp);  

リモートファイルがある場合は、それが正常に動作します。リモートファイルがなければ、それは爆発し、ブラウザは永久にハングします。

これを処理するにはどのような方法が最適ですか、何とか最初にファイルをpingする必要がありますか?またはこれを処理する上記のオプションを設定することができます。タイムアウトを設定しようとしましたが効果がありませんでした。

これは使用して私の初めての経験であるcURLの私は、そのは、本質的に外部プログラムを呼び出すために何が起こっているかを知るためにwgetのずっとあなたがカール使用していると能力の欠如に不満を得たとして使用するために使用さ

+0

試したタイムアウト値は何ですか?そして、TIMEOUTとCONNECTTIMEOUTの両方を試しましたか?また、curl_error()またはcurl_errno()で手がかりを確認しましたか? RETURNTRANSFERについて(あなた自身で内容を書いた場合に違いがありますか?)、またはFOLLOWLOCATION(リモート要求が場所ヘッダを返すかどうかは違いがありますか?) – landons

答えて

関連する問題