PHP 列出所有文件和目录136


在 PHP 中,我们可以使用多种函数列出目录下的所有文件和子目录。这些函数非常有用,例如管理文件、显示文件夹列表或执行文件操作。

遍历目录

要遍历目录并列出其内容,我们可以使用以下函数:
scandir():返回一个包含目录中所有文件和子目录名称的数组。
glob():使用模式匹配列出文件和子目录。它支持通配符,例如 *(任何字符)和 ?(单个字符)。
DirectoryIterator():一个面向对象的方法,允许对目录进行更高级别的遍历。

以下示例使用 scandir() 函数列出当前目录下的所有文件:```php
$files = scandir('.');
print_r($files);
```

获取文件信息

除了列出文件名,我们还可以获取文件的信息,例如其大小、修改时间和类型。以下函数可用于获取此信息:
filesize():返回文件的大小,以字节为单位。
filemtime():返回文件的最后修改时间,以 UNIX 时间戳为单位。
filetype():返回文件的类型,例如“file”或“dir”。

以下示例使用这些函数获取当前目录下第一个文件的信息:```php
$filename = $files[0];
$filesize = filesize($filename);
$modified = filemtime($filename);
$filetype = filetype($filename);
echo "Filename: $filename
";
echo "Size: $filesize bytes
";
echo "Last modified: $modified
";
echo "Type: $filetype
";
```

递归遍历

如果我们想递归遍历目录,遍历其所有子目录和文件,我们可以使用以下技术之一:
迭代:使用 DirectoryIterator() 或 RecursiveIteratorIterator 类。
递归函数:使用一个递归函数,该函数调用自身来处理子目录。

以下示例使用迭代方法递归遍历目录:```php
function list_dir_recursive($directory)
{
$iterator = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($directory)
);
foreach ($iterator as $file) {
echo $file->getPathname() . PHP_EOL;
}
}
list_dir_recursive('.');
```

PHP 提供了多种函数和技术来列出所有文件和目录。这些函数可以用于广泛的应用程序,从管理文件系统到显示目录列表。通过了解这些函数的用法,我们可以有效地在 PHP 中处理文件和目录。

2024-11-21


上一篇:从 PHP 获取数组到 JavaScript

下一篇:PHP 数组比较相等:全面指南