📅  最后修改于: 2023-12-03 15:33:39.274000             🧑  作者: Mango
在 PHP 中,可以使用一些内置的函数来获取目录中的文件列表。以下是一些常用的函数。
scandir()
函数返回一个目录中的文件和目录列表。它接受一个参数,即需要读取的目录的路径,返回一个数组,其中包含目录中的所有文件和目录的名称。
$dir = "/path/to/dir";
$fileList = scandir($dir);
print_r($fileList);
以上代码将返回类似于以下内容的数组:
Array
(
[0] => .
[1] => ..
[2] => file1.txt
[3] => file2.txt
[4] => subdirectory
)
注意,scandir()
函数还可以接受一个可选的第二个参数,用于指定排序顺序。默认情况下,它按字母顺序排序。
glob()
函数返回一个符合指定模式的文件列表。它接受一个参数,即需要读取的目录中与模式匹配的文件的列表。它将返回一个数组,其中包含与模式匹配的所有文件的名称。
$dir = "/path/to/dir";
$fileList = glob($dir . "/*.txt");
print_r($fileList);
以上代码将返回类似于以下内容的数组:
Array
(
[0] => file1.txt
[1] => file2.txt
)
注意,glob()
函数可以接受各种不同的模式。例如,您可以使用星号指定通配符来匹配所有文件或特定类型的文件。
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()
函数,可以轻松读取目录中的文件和目录列表,从而更轻松地管理您的文件。