php opendir()列出目录下所有文件的实例代码

当需要获取一个目录下的所有文件名时,我们可以使用 PHP 的 opendir() 函数。以下是完整攻略:

当需要获取一个目录下的所有文件名时,我们可以使用 PHPopendir() 函数。以下是完整攻略:

函数原型

resource opendir ( string $path [, resource $context ] )
  • path: 需要打开的目录路径。
  • context: 一个包含 stream contexts 配置的环境变量数据流。

该函数返回一个目录句柄选项,一个可供 readdir()closedir() 使用的资源类型的值。

代码实例

以下示例展示如何使用 opendir()readdir() 遍历一个目录中的所有文件:

$dir = "/path/to/dir";
$dh = opendir($dir);
while (($file = readdir($dh)) !== false) {
    if ($file != "." && $file != "..") {
        echo "filename : " . $file . "<br>";
    }
}
closedir($dh);

注释:

  • opendir() 函数打开指定的目录并返回一个目录句柄作为资源类型的值。
  • while() 循环使用 readdir() 读取当前打开目录的每个文件,检查文件名是否是 ...。如果不是,则使用 echo() 语句打印输出。echo 的 作用是输出内容到当前文件。
  • closedir() 函数关闭由 opendir() 函数打开的指定目录。

更进一步地,我们可以使用 is_dir() 等函数判断文件类型,使用 basename() 获取不带路径的文件名,以及对目录进行递归遍历。以下是第二个示例代码:

function dir_tree($dir){
    $dh = opendir($dir);
    while($file = readdir($dh)){
        if($file !== '.' && $file !== '..'){
            $fullpath = $dir.'/'.$file;
            if(is_dir($fullpath)){
                echo 'dir:', $fullpath, "<br />";
                dir_tree($fullpath);
            }
            else{
                echo 'file:', $fullpath, "<br />";
            }
        }
    }
    closedir($dh);
}
$dir = 'path/to/dir/';
dir_tree($dir);

注释:

  • is_dir() 函数用于判断一个文件是否为目录。
  • basename() 函数可以获取不带路径的文件名。
  • dir_tree() 函数进行递归遍历,首先打开路径指定目录,遍历目录中的每个文件,判断是否是目录,是的话递归遍历该目录,否则输出该文件的完整路径。

以上是使用 opendir() 函数列出目录下所有文件的实例代码的完整攻略,如果您对此还有疑问,欢迎提出。

本文标题为:php opendir()列出目录下所有文件的实例代码

基础教程推荐