2011-05-16 2 views
0

나는 PHP를 사용하여 다른 서버에서 대용량 파일을 다운로드하는 가장 좋은 방법을 찾으려고했지만 실패한 것 같거나 완전히 만족하지 못합니다.원격 파일을 다운로드하는 가장 좋은 방법

내 질문은 무엇입니까, 적은 RAM을 사용하여 큰 파일을 다운로드하는 가장 빠른 방법은 무엇입니까? 그게 컬이야? fopen의? 그것이 fopen이라면 어떤 전략을 사용해야합니까?

감사합니다.

+0

http://www.webdigity.com/index.php?action=tutorial;code=45 당신이 PHP의 파일을 처리하기 위해 다운로드, 아니면 그냥 그래서 그들은 어딘가에 저장하고 다운로드 할 수 있습니다. 저장소로 다운로드하기 만하면 외부에서 exec wget을 실행하여 백그라운드에서 실행하게하면 방정식에서 PHP가 제거됩니다. –

답변

1

Fastest는 소켓을 사용했을 가능성이 있지만 휠을 다시 발명하는 것과 같습니다. 실제로 cURL을 사용해야합니다. 나는 당신의 모든 메모리를 사용하지 말아 있도록 온라인이 조각을 발견

set_time_limit(0); 

$fp = fopen (dirname(__FILE__) . '/file.ext', 'w+'); // Output file 
$ch = curl_init('http://www.example.com/largefile.ext'); // Input file 
curl_setopt($ch, CURLOPT_TIMEOUT, 50); 
curl_setopt($ch, CURLOPT_FILE, $fp); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
curl_exec($ch); 
curl_close($ch); 
fclose($fp); 

출처 :

1

fopen은 allow_url_fopen을 활성화해야한다는 점에서 신뢰할 수 없습니다 (보안 문제로 인해 대개 비활성화됩니다). 당신은 fopen보다 cURL 옵션이 훨씬 많습니다.

관련 문제