Php 简明教程
PHP – Listing Files
Windows 命令 DIR 和 Linux 命令 ls 都显示当前目录中的文件列表。可以使用不同的交换机操作这些命令,以便对显示的文件列表应用条件。PHP 提供了一些用于以编程方式列出给定目录中文件的方法。
The readdir() Function
PHP 中的 opendir() 函数类似于 fopen() 函数。它返回目录句柄,以便可以按序列化方式读取目录的内容。
opendir(string $directory, ?resource $context = null): resource|false
此函数打开一个目录句柄,用于后续的 closedir()、readdir() 和 rewinddir() 调用。
readdir() 函数读取 opendir() 函数返回的流句柄中的下一个可用条目。
readdir(?resource $dir_handle = null): string|false
此处, dir_handle 是先前使用 opendir() 打开的目录句柄,如果未指定,则假定为由 opendir() 打开的最后一个链接。
closedir() 函数类似于 fclose() 函数。它关闭目录句柄。
closedir(?resource $dir_handle = null): void
该函数关闭 dir_handle 指示的目录流。该流必须先前由 opendir() 打开。
The scandir() Function
scandir() 函数检索给定目录中的文件和子目录。
scandir(string $directory,
int $sorting_order = SCANDIR_SORT_ASCENDING,
?resource $context = null): array|false
“sorting_order” 默认按升序排列。如果将此可选参数设置为 SCANDIR_SORT_DESCENDING,则排序顺序变为按降序排列。如果它设置为 SCANDIR_SORT_NONE,则结果将变为未排序。
Example
使用以下 PHP 代码,scandir() 函数返回给定目录中的文件数组。
<?php
$dir = "c:/xampp/php/mydir/";
$files = scandir($dir);
var_dump($files);
?>
它将生成以下 output −
array(4) {
[0]=>
string(1) "."
[1]=>
string(2) ".."
[2]=>
string(5) "a.txt"
[3]=>
string(5) "b.txt"
}
你可以使用 foreach 循环遍历 scandir() 函数返回的数组。
<?php
$dir = "c:/xampp/php/mydir/";
$files = scandir($dir);
foreach ($files as $file)
echo $file . PHP_EOL;
?>
它将生成以下 output −
.
..
a.txt
b.txt