PHP를 사용하여 반복적으로 파일 및 폴더 찾기
디렉터리의 내용과 모든 하위 디렉토리를 탐색하기 위해 재귀 기능이 사용됩니다. 그러나 제공된 코드에는 성능 문제가 있어 브라우저 속도가 크게 느려집니다.
문제
'.'를 제외하지 않는 함수입니다. 및 재귀 호출의 ".." 디렉터리로 인해 무한 루프가 발생하고 실행 속도가 느려집니다.
수정
이 문제를 해결하기 위해 코드를 다음과 같이 수정했습니다. 다음:
function getDirContents($dir, &$results = array()) { $files = scandir($dir); foreach ($files as $key => $value) { $path = realpath($dir . DIRECTORY_SEPARATOR . $value); if (!is_dir($path)) { $results[] = $path; } else if ($value != "." && $value != "..") { getDirContents($path, $results); $results[] = $path; } } return $results; }
"." 제외 및 ".."
"."을 제외하는 조건을 추가했습니다. 재귀 호출의 ".." 디렉터리입니다. 이러한 디렉터리는 각각 현재 디렉터리와 상위 디렉터리를 나타내며 이를 포함하면 무한 루프가 생성됩니다.
사용법
이 기능을 사용하려면 간단히 탐색하려는 디렉터리:
var_dump(getDirContents('/xampp/htdocs/WORK'));
이 코드는 지정된 디렉터리 내의 파일 및 폴더의 전체 목록이 포함된 배열을 반환합니다. 각 항목은 파일이나 폴더의 전체 경로가 됩니다.
위 내용은 성능 문제 없이 PHP에서 파일과 폴더를 어떻게 반복적으로 찾을 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!