2011-08-04 2 views
-1

$ offset! = -1로 file_get_contents를 사용하면 false가 반환됩니다. URL에서 가져 오려는 파일이 매우 큽니다. 로컬이 아닌 파일에 offset 매개 변수를 사용할 수 있습니까? 내가 그것을 사용큰 파일을 다운로드하기 위해 file_get_contents를 사용하는 중 오류가 발생했습니다.

코드 :

$content = file_get_contents($encodedurl,false,NULL,$offset,$blocksize); 
+2

"매우 큰"의미는 무엇입니까? 19kb? 32MB? 18GB? – genesis

+0

1GB보다 큼 – ir01

답변

1

PHP documentation는 말한다 : 찾는

은 (오프셋) 원격 파일을 지원하지 않습니다. 로컬이 아닌 파일 인 을 검색하려고 시도하면 작은 오프셋이 적용될 수 있지만 은 버퍼링 된 스트림에서 작동하므로 예측할 수 없습니다.

파일이 매우 큰 경우 리소스에 HTTP GET 요청을 시뮬레이트하는 고유 한 함수를 작성하는 것이 가장 좋습니다. 그런 다음 버퍼 방식으로 파일을 읽을 수 있습니다. 즉 16MB 크기의 파일을 디스크에 저장할 수 있습니다. 디스크를 완전히 다운로드하면이 파일을 하나의 파일로 다시 결합 할 수 있습니다. 또는 필요에 따라 청크로 처리하십시오.