재귀적 PHP 함수를 활용하여 디렉터리의 파일 및 폴더 확인
이 토론에서는 디렉터리의 파일과 하위 디렉터리를 재귀적으로 순회하는 방법을 조사합니다.
제공된 내용 코드:
function getDirContents($dir){ $results = array(); $files = scandir($dir); foreach($files as $key => $value){ if(!is_dir($dir. DIRECTORY_SEPARATOR .$value)){ $results[] = $value; } else if(is_dir($dir. DIRECTORY_SEPARATOR .$value)) { $results[] = $value; getDirContents($dir. DIRECTORY_SEPARATOR .$value); } } } print_r(getDirContents('/xampp/htdocs/WORK'));
딜레마:
주어진 코드는 디렉터리와 파일을 탐색하는 재귀 기능을 가지고 있습니다. 그러나 '.'을 무시하지 못합니다. 및 '..'으로 인해 잠재적으로 무한 루프가 발생합니다. 또한 각 파일과 디렉터리는 결과에서 중복됩니다.
답변:
이 문제를 해결하려면 다음과 같이 기능을 수정할 수 있습니다.
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; }
이 코드는 다음과 같습니다.
위 내용은 무한 루프와 중복 항목을 방지하면서 PHP를 사용하여 디렉터리의 모든 파일과 폴더를 반복적으로 나열하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!