거대한 양의 그림이 담긴 폴더 (적어도 10000 개의 파일)가 있습니다.이 파일들을 PHP를 사용하여 가져와야합니다. 문제는 내가 사용했을 때 scandir()
메모리 제한에 관한 오류가 발생했습니다.PHP - 엄청난 양의 파일을 디렉토리에서 읽습니다.
$files = [];
$dir = opendir($this->path);
$i = 0;
while(($file = readdir($dir)) !== false) {
$files[] = $file;
$i++;
if ($i == 100)
break;
}
이 코드는 잘 작동하지만, 내가 원하는 게 아니에요 : 또한,이 같은 코드를 사용했습니다. 모든 파일을 가져 오려고하면 스크립트가 여전히 충돌합니다.
게다가 나는 나중에 AJAX 요청을 통해 그것을 사용하고 모든 파일을 얻는 것에 대해 $dir
에 포인터의 상태를 저장하는 것에 대해 생각했지만 그 목적을위한 해결책을 찾을 수 없습니다.
파일 읽기에 대한 제한 및 오프셋의 설정 방법이 있습니까? 페이지 매김과 같은 의미입니다.
무엇을 * 정확하게 *, 귀하의 질문입니까? –
http://php.net/manual/en/class.directoryiterator.php perhapps를보십시오 – Scuzzy
여기에 진짜 질문은 없지만 10000 개의 파일을 실행하면 약간의 메모리 비용이들 것입니다. 캐싱을 사용하고 그 사이에 간격을 둔 작은 벌크 파일을 탐색하거나 더 나은 서버를 얻으십시오. – Classified