在开始之前,需要准备一个目录结构,用于测试遍历目录的功能。假设在网站的根目录下准备一个名为 test 的目录,并在该目录下分别创建两个子目录 folder1 和 folder2,并在这两个子目录下分别各创建一个文件。目录结构如下:
PHP遍历目录输出目录及其下的所有文件
1. 准备目录结构
在开始之前,需要准备一个目录结构,用于测试遍历目录的功能。假设在网站的根目录下准备一个名为 test
的目录,并在该目录下分别创建两个子目录 folder1
和 folder2
,并在这两个子目录下分别各创建一个文件。目录结构如下:
test/
|-- folder1/
| |-- file1.txt
|-- folder2/
| |-- file2.txt
2. 编写PHP代码
我们可以使用 opendir()
函数打开目录,然后使用 readdir()
函数遍历目录下的所有文件和子目录。代码示例如下:
<?php
$path = './test/';
function scan_dir($path) {
$dir_handle = opendir($path);
while ($item = readdir($dir_handle)) {
if ($item == '.' || $item == '..') {
continue;
}
$item_path = $path . '/' . $item;
if (is_file($item_path)) {
echo $item_path . "\n";
} elseif (is_dir($item_path)) {
echo $item_path . "\n";
scan_dir($item_path);
}
}
closedir($dir_handle);
}
scan_dir($path);
?>
这段代码首先打开了 ./test/
目录,然后使用 while
循环读取该目录下的所有文件和子目录。对于读取到的每一个文件或子目录,代码判断其是否为目录,若为目录,则通过递归的方式遍历目录及其所有子目录。
执行这段代码,将会输出以下内容:
./test/folder1
./test/folder1/file1.txt
./test/folder2
./test/folder2/file2.txt
3. 遍历目录并记录每个子目录下的文件数
下面是另一个示例,我们可以遍历目录并记录每个子目录下的文件数。实现方式类似于上一个示例,只是增加了子目录下文件数的统计。
<?php
$path = './test/';
function scan_dir($path) {
$dir_handle = opendir($path);
$count = 0;
while ($item = readdir($dir_handle)) {
if ($item == '.' || $item == '..') {
continue;
}
$item_path = $path . '/' . $item;
if (is_file($item_path)) {
$count++;
} elseif (is_dir($item_path)) {
$count += scan_dir($item_path);
}
}
closedir($dir_handle);
echo $path . ': ' . $count . "\n";
return $count;
}
scan_dir($path);
?>
这段代码首先打开了 ./test/
目录,然后使用 while
循环读取该目录下的所有文件和子目录。对于读取到的每一个文件或子目录,代码通过判断其是否为目录,来统计其下文件总数。当遍历到最底层的子目录时,函数将返回该子目录下文件数,从而让父目录的统计数加上该子目录的文件数。
执行这段代码,将会输出以下内容:
./test/: 4
./test/folder1: 1
./test/folder2: 1
以上是两个 PHP 遍历目录的示例,希望能解决你的问题。
本文标题为:php遍历目录输出目录及其下的所有文件示例
基础教程推荐
- PHP+MariaDB数据库操作基本技巧备忘总结 2022-10-18
- php的对象传值与引用传值代码实例讲解 2023-05-19
- thinkPHP5使用Rabc实现权限管理 2023-02-06
- php递归如何获取无限上级ID 2023-07-03
- 简单实用的PHP文本缓存类实例 2023-01-04
- YII框架学习笔记之命名空间、操作响应与视图操作示例 2023-01-08
- PHP下载大文件失败并限制下载速度的实例代码 2023-01-14
- PHP实现从上往下打印二叉树的方法 2022-10-05
- PHP7下协程的实现方法详解 2022-10-02
- php新建文件的方法实例 2023-02-14