메모리 문제 없이 URL에서 대용량 파일 다운로드
웹 개발자는 일반적으로 원격 URL에서 대용량 파일을 다운로드하는 문제에 직면합니다. file_get_contents() 및 file_put_contents()를 사용하는 간단한 접근 방식은 작은 파일의 경우 충분할 수 있지만 메모리 제한을 초과하는 경우에는 부족합니다. 이 문제는 메모리 리소스를 소모하지 않고 대용량 파일을 점진적으로 다운로드하는 방법에 대한 질문을 촉발했습니다.
다행히도 PHP는 이러한 문제를 해결하는 훌륭한 솔루션을 제공합니다. 버전 5.1.0부터 file_put_contents()는 스트림 핸들을 두 번째 인수로 전달하여 데이터를 청크로 작성하는 것을 지원했습니다.
이 기능을 활용하는 수정된 코드는 다음과 같습니다.
file_put_contents("Tmpfile.zip", fopen("http://someurl/file.zip", 'r'));
이것은 코드는 다음과 같이 작동합니다.
PHP 매뉴얼에서는 스트림 핸들을 file_put_contents()에 전달하면 복사가 트리거된다고 설명합니다. 스트림에서 대상 파일로의 나머지 버퍼. 이 메커니즘은 stream_copy_to_stream()의 기능을 효과적으로 미러링합니다.
이 기술을 사용하면 개발자는 메모리 제약 없이 대용량 파일을 쉽게 다운로드할 수 있으므로 가장 큰 파일 크기에도 원활한 데이터 전송이 보장됩니다.
위 내용은 메모리 소모 없이 PHP의 URL에서 대용량 파일을 다운로드하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!