Curl을 사용하여 대용량 파일 다운로드 처리: 디스크로 스트리밍
curl을 사용하여 대용량 파일을 다운로드하는 것은 메모리 제약으로 인해 어려울 수 있습니다. 전체 파일을 디스크에 쓰기 전에 메모리로 읽어들이는 기존 방법은 성능 문제를 일으킬 수 있습니다. 이러한 제한을 극복하려면 파일을 디스크로 직접 스트리밍하는 것이 좋습니다.
다음은 컬_setopt() 함수를 사용하여 CURLOPT_FILE 옵션을 구성하는 솔루션입니다. 이 옵션은 컬이 다운로드한 데이터를 직접 쓸 수 있는 파일 포인터를 지정합니다.
set_time_limit(0); // Disable PHP time limit // Open a file for writing $fp = fopen(dirname(__FILE__) . '/localfile.tmp', 'w+'); // Initialize curl $ch = curl_init(str_replace(" ", "%20", $url)); // Set timeout to a high value curl_setopt($ch, CURLOPT_TIMEOUT, 600); // Write curl response to file curl_setopt($ch, CURLOPT_FILE, $fp); // Follow any redirects curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // Execute curl curl_exec($ch); // Close curl and file handlers curl_close($ch); fclose($fp);
이 개선된 코드에서:
이 기술을 사용하면 컬은 다운로드한 데이터를 우회하여 디스크에 직접 스트리밍할 수 있습니다. 메모리 제약을 완화하고 대용량 파일을 효율적으로 처리할 수 있습니다.
위 내용은 메모리 문제를 피하기 위해 Curl이 대용량 파일 다운로드를 디스크에 직접 스트리밍하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!