php 获取指定目录下面的所有目录

可以使用PHP的scandir()函数和is_dir()函数来获取指定目录下的所有目录。

scandir()函数返回一个包含指定目录中所有文件和目录的数组,is_dir()函数用于判断给定的路径是否是一个目录。

下面是一个示例代码,它使用了这两个函数来获取指定目录下的所有目录:

<?php
// 指定要查找的目录
$dir = "/path/to/directory";

// 使用scandir()函数获取目录中的所有文件和目录
$files = scandir($dir);

// 遍历所有文件和目录,使用is_dir()函数判断是否是目录
foreach ($files as $file) {
    if ($file != "." && $file != ".." && is_dir($dir . "/" . $file)) {
        echo $file . "\n";
    }
}
?>

在上面的代码中,$dir变量指定要查找的目录。使用scandir()函数获取目录中的所有文件和目录,然后使用foreach循环遍历每个文件和目录。对于每个文件和目录,使用is_dir()函数判断是否是一个目录,如果是,则将目录名打印出来。注意,为了排除当前目录(”.”)和上级目录(”..”),在遍历时需要加上判断条件$file != "." && $file != ".."

封装成函数

你需要多次使用一个代码块时,可以将其封装成一个函数,以便于在需要时进行调用。

下面是一个将获取指定目录下所有目录封装成函数的示例代码:

function getDirectories($dir) {
    $directories = array();

    if (is_dir($dir)) {
        $files = scandir($dir);

        foreach ($files as $file) {
            if ($file != "." && $file != ".." && is_dir($dir . "/" . $file)) {
                $directories[] = $file;
            }
        }
    }

    return $directories;
}

在这个函数中,我们传入一个参数$dir,该参数是要查找的目录的路径。函数首先创建一个空数组$directories,用于存储找到的目录名称。然后使用is_dir()函数判断传入的目录是否是一个合法的目录,如果是,就使用scandir()函数获取目录下的所有文件和目录。接着使用foreach循环遍历每个文件和目录,使用is_dir()函数判断是否是一个目录,如果是,将目录名添加到$directories数组中。最后,函数返回$directories数组,其中包含所有找到的目录名称。

要调用这个函数,只需要传入要查找的目录的路径即可,例如:

$dir = "/path/to/directory";
$directories = getDirectories($dir);

print_r($directories);

上述代码将获取$dir目录下的所有目录,并将它们存储在$directories数组中,然后使用print_r()函数打印出来。

© 版权声明
THE END
喜欢就支持一下吧
点赞9
评论 抢沙发

请登录后发表评论

    暂无评论内容