php遍历目录的方法
封面图
•
2025-12-06
•
PHP
264
0
0
0
在 PHP 中,遍历目录可以通过多种方式实现。最常用的方法是使用 `scandir()` 函数、`DirectoryIterator` 类或 `glob()` 函数。下面是几种常见的方法示例: --- ## ✅ 方法一:使用 `scandir()` 函数 ```php <?php $dir = './your_directory'; // 替换为你的目录路径 $files = scandir($dir); foreach ($files as $file) { if ($file === '.' || $file === '..') continue; echo $file . '<br>'; } ?> ``` ### 说明: - `scandir()` 返回目录中的文件和子目录列表。 - 需要跳过 `.` 和 `..`(当前目录和上级目录)。 --- ## ✅ 方法二:使用 `DirectoryIterator` 类(面向对象) ```php <?php $dir = new DirectoryIterator('./your_directory'); foreach ($dir as $file) { if ($file->isFile()) { echo '文件: ' . $file->getFilename() . '<br>'; } elseif ($file->isDir()) { echo '目录: ' . $file->getFilename() . '<br>'; } } ?> ``` ### 说明: - `DirectoryIterator` 是一个面向对象的类,可以更方便地判断是文件还是目录。 - 支持更多功能,如获取文件大小、修改时间等。 --- ## ✅ 方法三:使用 `glob()` 函数(适合匹配模式) ```php <?php $files = glob('./your_directory/*'); // 匹配所有文件和目录 foreach ($files as $file) { echo basename($file) . '<br>'; } ?> ``` ### 说明: - `glob()` 可以配合通配符使用,比如 `*.php` 来只获取 PHP 文件。 - 适用于简单匹配需求。 --- ## ✅ 方法四:递归遍历目录(包括子目录) ```php <?php function traverseDirectory($dir) { $files = scandir($dir); foreach ($files as $file) { if ($file === '.' || $file === '..') continue; $path = $dir . '/' . $file; if (is_dir($path)) { echo "目录: $file<br>"; traverseDirectory($path); // 递归 } else { echo "文件: $file<br>"; } } } traverseDirectory('./your_directory'); ?> ``` ### 说明: - 通过递归函数遍历所有子目录和文件。 - 适用于需要深度遍历的情况。 --- ## ✅ 总结 | 方法 | 特点 | |------|------| | `scandir()` | 简单直接,但需手动过滤 `.` 和 `..` | | `DirectoryIterator` | 面向对象,功能丰富,推荐使用 | | `glob()` | 适合按模式匹配文件 | | 递归遍历 | 遍历所有子目录和文件 | --- 如果你有具体需求(比如只遍历文件、只遍历某类文件、统计文件数量等),可以告诉我,我可以提供更具体的代码示例。
上一篇:
解决phpMyAdmin“登录超时 (1440 秒未活动),请重新登录”的问题
下一篇:
猴子选大王-php面试题
标题录入,一次不能超过6条
留言
评论