2012-04-05 3 views
0

ファイルをダウンロードするにはこのコードがありますが、sourceforge.netにファイルがダウンロードされるまでに5秒の遅延があります(試してみると分かります)。ブラウザにこのリンクを読み込みます)。そして、私はスクリプトが完了した後にサイズがゼロのファイルを持っています。このファイルをダウンロードするにはどうしたらいいですか?あらかじめThanx!ファイルのダウンロードサーバーの遅延のためにPHPスクリプトが機能しない

set_time_limit($hugetimeout); 

あなたのスクリプトの前に:あなたが使用できるPHPでタイムアウトを避けるために

$url = 'http://downloads.sourceforge.net/project/gnucash/gnucash%20%28stable%29/2.4.9/gnucash-2.4.9-setup.exe'; 
$ch = curl_init($url); 
$fp = fopen('/home/content/11/8564211/html/'.substr($url,strrpos($url,'/'),strlen($url)), 'w'); 
curl_setopt($ch, CURLOPT_FILE, $fp); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_exec($ch); 
curl_close($ch); 
fclose($fp); 
+0

おそらく、ページがロケーションヘッダーをダウンロードファイルに送信します。 curl_setopt($ ch、CURLOPT_FOLLOWLOCATION、1);を使用してみてください。 –

答えて

0

あなたはこれを試すことができます。

$url = 'http://downloads.sourceforge.net/project/gnucash/gnucash%20%28stable%29/2.4.9/gnucash-2.4.9-setup.exe'; 
$ch = curl_init($url); 
$fp = fopen('/home/content/11/8564211/html/'.substr($url,strrpos($url,'/'),strlen($url)), 'w'); 
curl_setopt($ch, CURLOPT_FILE, $fp); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_exec($ch); 
curl_close($ch); 
fclose($fp); 
0

。詳しい書類hereを読むことができます。

+0

ありがとうございます。動作しません。 – artaskerov

1

Sourceforgeのダウンロードを開始するにはメタリフレッシュタグを使用し、CURLOPT_FOLLOWLOCATION場所に応答するため:それは最も可能性の高い助けにはなりませんヘッダー。

あなたがしたいことを達成するために、HTML解析を行う必要があると思います。

<meta http-equiv="refresh" content="5; url=http://downloads.sourceforge.net/project/gnucash/gnucash%20%28stable%29/2.4.9/gnucash-2.4.9-setup.exe?r=&amp;ts=1333621946&amp;use_mirror=switch"> 

次に、行からURLを取得して読み込む必要があります。 Sourceforgeがこの種のダウンロードにクッキーまたはセッションベースのストッパーを使用している可能性がありますので、それを補う必要があります。

私はこれをテストしていませんが、これはあなたがこれを行う方法に近いと思われます。

+0

ありがとうございます。非常に便利! – artaskerov

0

ダウンロードページに直接リンクがありますが、代わりにそのリンクを試すことができますか?

関連する問題