📜  php 获取目录 - PHP (1)

📅  最后修改于: 2023-12-03 15:33:39.274000             🧑  作者: Mango

PHP 获取目录

在 PHP 中,可以使用一些内置的函数来获取目录中的文件列表。以下是一些常用的函数。

scandir()

scandir() 函数返回一个目录中的文件和目录列表。它接受一个参数,即需要读取的目录的路径,返回一个数组,其中包含目录中的所有文件和目录的名称。

$dir = "/path/to/dir";
$fileList = scandir($dir);
print_r($fileList);

以上代码将返回类似于以下内容的数组:

Array
(
    [0] => .
    [1] => ..
    [2] => file1.txt
    [3] => file2.txt
    [4] => subdirectory
)

注意,scandir() 函数还可以接受一个可选的第二个参数,用于指定排序顺序。默认情况下,它按字母顺序排序。

glob()

glob() 函数返回一个符合指定模式的文件列表。它接受一个参数,即需要读取的目录中与模式匹配的文件的列表。它将返回一个数组,其中包含与模式匹配的所有文件的名称。

$dir = "/path/to/dir";
$fileList = glob($dir . "/*.txt");
print_r($fileList);

以上代码将返回类似于以下内容的数组:

Array
(
    [0] => file1.txt
    [1] => file2.txt
)

注意,glob() 函数可以接受各种不同的模式。例如,您可以使用星号指定通配符来匹配所有文件或特定类型的文件。

opendir() 和 readdir()

opendir()readdir() 函数可以合并使用,以逐个读取目录中的文件。opendir() 函数打开一个目录,并返回一个句柄,可供稍后在该目录中读取文件。readdir() 函数读取该目录中的下一个文件,并返回文件名。直到没有更多文件可以读取时,它将返回 false

$dir = "/path/to/dir";
if ($handle = opendir($dir)) {
    while (false !== ($file = readdir($handle))) {
        if ($file != "." && $file != "..") {
            echo "$file\n";
        }
    }
    closedir($handle);
}

以上代码将逐个读取 $dir 目录中的所有文件,并将每个文件名打印到控制台上。

注意,readdir() 函数返回的文件名包括 ...,因此通常需要将它们排除在读取的文件列表之外。此外,必须使用 closedir() 函数关闭目录句柄,以便释放资源。

总结

使用 scandir()glob()opendir()readdir() 函数,可以轻松读取目录中的文件和目录列表,从而更轻松地管理您的文件。