>  기사  >  백엔드 개발  >  PHP는 폴더 탐색을 구현합니다.

PHP는 폴더 탐색을 구현합니다.

PHPz
PHPz원래의
2023-05-29 16:39:393168검색

PHP는 다양한 작업을 구현하는 데 사용할 수 있는 매우 인기 있는 프로그래밍 언어입니다. 그 중에서 폴더를 탐색하고 그 안의 파일 정보를 얻는 것이 자주 필요한 작업입니다. 이 기사에서는 PHP에서 폴더 탐색을 구현하는 방법을 설명합니다.

  1. opendir() 함수

opendir() 함수는 PHP에서 폴더를 열 때 사용하는 함수입니다. 이 함수를 호출할 때 폴더 경로를 매개변수로 전달해야 합니다. 폴더가 성공적으로 열리면 readdir() 함수를 통해 폴더의 내용을 읽을 수 있습니다.

샘플 코드:

$dir = './test';  //文件夹路径
$handle = opendir($dir);  //打开文件夹
while ($file = readdir($handle)) {  //循环读取所有文件
    if ($file != "." && $file != "..") {  //排除"."和".."两个特殊的文件夹
        echo $file."<br>";  //输出文件名
    }
}
closedir($handle);  //关闭文件夹

위 샘플 코드에서는 "test"라는 폴더를 열고 "." 및 " .." 두 개의 특수 폴더를 무시하고 폴더에 있는 모든 파일 이름을 루프로 읽었습니다.

  1. is_dir() 함수 및 재귀 순회

디렉터리의 모든 하위 디렉터리와 파일을 순회하려면 재귀 방법을 사용할 수 있습니다. 순회 프로세스 중에 현재 순회가 폴더인지 파일인지 확인해야 합니다. is_dir() 함수를 사용하여 확인할 수 있습니다.

샘플 코드:

function scanDir($dir){
    if(!is_dir($dir)){
        echo '不是一个有效的文件夹路径';
        return;
    }
    $handle = opendir($dir);  //打开文件夹
    while($file = readdir($handle)){  //循环读取所有文件
        if($file == '.' || $file == '..'){  //忽略掉 ".",".." 特殊文件夹
            continue;
        }
        $path = $dir.'/'.$file;  //当前文件或文件夹的完整路径
        if(is_dir($path)){  //如果是一个文件夹
            echo '<b>'.$file.'</b><br>';  //输出文件夹名称
            scanDir($path);  //递归遍历子文件夹
        }else{  //如果是一个文件
            echo $file.'<br>';  //输出文件名称
        }
    }
    closedir($handle);  //关闭文件夹
}

위 샘플 코드에서는 폴더 경로를 매개변수로 받아들이는 scanDir() 함수를 정의했습니다. 함수 내에서 먼저 들어오는 경로가 폴더인지 확인합니다. 폴더가 아닌 경우에는 직접 반환하세요. scanDir(),该函数接受一个文件夹路径作为参数。在函数内部,我首先判断传入的路径是否为文件夹。如果不是文件夹,则直接返回。

接下来,我打开文件夹,并循环读取其中的文件和文件夹。当遍历到文件夹时,我会输出文件夹名称,并递归调用 scanDir() 函数遍历子文件夹。当遍历到文件时,我只是输出文件名称。

  1. scandir() 函数

PHP 还提供了一个非常简单的函数 scandir(),可以用于一次性获取一个文件夹下的所有文件和文件夹名称。和 opendir() 函数不同的是,该函数返回的是一个数组,数组中包含了所有子文件夹和文件的名称。

示例代码:

$dir = './test';  //文件夹路径
$files = scandir($dir);  //获取文件夹下所有文件和文件夹名称
foreach($files as $file){  //循环遍历
    if($file == '.' || $file == '..'){  //忽略掉 ".",".." 特殊文件夹
        continue;
    }
    echo $file.'<br>';  //输出文件或文件夹名称
}

在上面的示例代码中,我调用了 scandir()

다음으로 폴더를 열고 그 안의 파일과 폴더를 반복해서 읽습니다. 폴더를 탐색할 때 폴더 이름을 출력하고 scanDir() 함수를 반복적으로 호출하여 하위 폴더를 탐색합니다. 파일을 반복할 때 파일 이름만 출력합니다.

    scandir() 함수

    🎜PHP는 폴더에 있는 모든 파일을 한 번에 가져오고 폴더 이름. opendir() 함수와 달리 이 함수는 모든 하위 폴더 및 파일의 이름이 포함된 배열을 반환합니다. 🎜🎜샘플 코드: 🎜rrreee🎜위 샘플 코드에서는 scandir() 함수를 호출하여 폴더 아래의 모든 파일 및 폴더 이름을 가져오고 배열을 반복했습니다. 마찬가지로 두 개의 특수 폴더 "."와 ".."를 무시하고 폴더와 파일의 이름만 출력했습니다. 🎜🎜요약🎜🎜이 기사에서는 PHP로 폴더 탐색을 구현하는 방법을 소개하고 세 가지 방법을 시연했습니다. opendir() 및 readdir() 함수를 통해 폴더의 모든 파일과 폴더를 반복하고 파일 유형을 판단하여 해당 작업을 수행할 수 있습니다. 재귀 순회를 통해 디렉터리의 모든 하위 디렉터리와 파일을 순회할 수 있습니다. scandir() 함수를 통해 폴더 아래의 모든 하위 폴더와 파일 이름을 한 번에 가져옵니다. PHP에서 폴더를 반복해야 하는 경우 이 문서가 참조를 제공할 수 있기를 바랍니다. 🎜

위 내용은 PHP는 폴더 탐색을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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