2009-04-08 13 views

答えて

6

最も簡単なのはfile_get_contents()で、より高度な方法はたとえばcURLです。 file_put_contents()でハードドライブにデータを保存することができます。

+1

お奨めのことしかし、file_get_contents()に注意してください。そのデータはすべて文字列で保持されます。 PHPのデフォルトのメモリ制限は通常かなり低いです(16M IIRC)ので、もし彼が共有ホスティングをしていて、彼がダウンロードしているファイルがかなり大きければ、彼はそれに苦労するでしょう。 –

+0

あなたが素敵な共有ホストを持っていなければ、彼はPHP上であなたのためにメモリをバンプするか、自分のサーバーを持っています。それでも、まだそれは一種の不確実な考えです。 –

+0

また、他のドメインのファイルにアクセスしようとするとハッカーの試みを防ぐために、より安全なボックスではfile_get_contentsが無効になります。 – jerebear

4

あなたはここからコピーされたメモリの制限を回避するには、以下の(しかし、それはのfile_get_contentsより遅いです)

<?php 
$remote = fopen("http://www.example.com/file.zip", "rb"); 
$local = fopen("local_name_of_file.zip", 'w'); 
while (!feof($remote)) { 
    $content = fread($remote, 8192); 
    fwrite($local, $content); 
} 
fclose($local); 
fclose($remote); 
?> 

を行うことができますので、通常は、関数fopen関数は、あまりにもリモートファイルのために働く:http://www.php.net/fread

+0

これはあまり悪くない..私の問題を解決... –

関連する問題