특정 디렉토리의 모든 이미지 파일 목록을 반환하는 데 재귀 함수를 사용하고 있습니다. 이 함수는 반환 된 배열의 특정 크기가 될 때까지 제대로 작동합니다 (문제라고 가정). 이 문제를 해결하기 위해 내가 할 수있는 다른 조치가 있습니까? 아니면 응용 프로그램이 실행되는 동안 코드가 많이 변경되지 않아도 구현할 수있는 대안이 있습니까? 여기에 나의 재귀 함수가있다.PHP에서 배열 크기가 제한됩니다 scandir()
function scanDirectories($rootDir, $allowext, $allData=array()) {
$dirContent = scandir($rootDir);
foreach($dirContent as $key => $content) {
$path = $rootDir.'/'.$content;
$ext = substr($content, strrpos($content, '.') + 1);
if(in_array($ext, $allowext)) {
if(is_file($path) && is_readable($path)) {
$allData[] = $path;
}elseif(is_dir($path) && is_readable($path)) {
// recursive callback to open new directory
$allData = scanDirectories($path, $allData);
}
}
}
return $allData;
}
예를 들어 나는 83 개의 이미지 파일이있는 디렉토리가 있지만 그 중 28 개만 목록을 반환 할 수 있습니다. 인터넷에서 검색 할 때 ini_set('memory_limit', '1024M');
을 사용하여 1GB까지 메모리 제한이 있지만 내 문제를 해결할 수 없기 때문에 의 결과가 될 수 있음을 발견했습니다.
오류 PHP는 무엇을 반환합니까? – gvgvgvijayan
'try catch'블록에 넣을 때 오류가 발생하지 않습니다. – Cyberpks