>  기사  >  백엔드 개발  >  성능 문제 없이 PHP에서 파일과 폴더를 어떻게 반복적으로 찾을 수 있습니까?

성능 문제 없이 PHP에서 파일과 폴더를 어떻게 반복적으로 찾을 수 있습니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-25 21:17:27124검색

How Can I Recursively Find Files and Folders in PHP Without Performance Issues?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.