# PHP目录遍历实例代码
在PHP编程中,目录遍历是一个常见的操作,它可以帮助我们获取目录下的所有文件和子目录信息。下面,我将通过一个实例代码来展示如何使用PHP实现目录全量遍历以及展示文件信息。
## 目录遍历的基本思路
目录遍历通常有两种方法:深度优先遍历和广度优先遍历。这里我们使用深度优先遍历的方法,即先访问当前目录下的所有文件和子目录,然后再递归地访问每个子目录。
## 实例代码
以下是一个简单的PHP脚本,用于遍历指定目录下的所有文件和子目录,并展示每个文件的基本信息:
```php
<?php
function listDirectory($dir) {
$files = array();
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
if ($file != "." && $file != "..") {
$filePath = $dir . DIRECTORY_SEPARATOR . $file;
if (is_dir($filePath)) {
$files[$file] = listDirectory($filePath);
} else {
$files[$file] = getFileInfo($filePath);
}
}
}
closedir($dh);
}
}
return $files;
}
function getFileInfo($filePath) {
$fileInfo = array(
'filename' => basename($filePath),
'filesize' => filesize($filePath),
'filetype' => mime_content_type($filePath),
'filemtime' => date('Y-m-d H:i:s', filemtime($filePath))
);
return $fileInfo;
}
// 使用示例
$directoryPath = '/path/to/your/directory';
$directoryList = listDirectory($directoryPath);
// 输出目录列表
foreach ($directoryList as $name => $info) {
if (is_array($info)) {
echo "Directory: $name\n";
foreach ($info as $subName => $subInfo) {
echo " File: $subName\n";
foreach ($subInfo as $key => $value) {
echo " $key: $value\n";
}
}
} else {
echo "File: $name\n";
foreach ($info as $key => $value) {
echo " $key: $value\n";
}
}
echo "\n";
}
?>
代码说明
listDirectory函数接受一个目录路径作为参数,返回该目录下的所有文件和子目录的信息。getFileInfo函数接受一个文件路径作为参数,返回该文件的基本信息,如文件名、大小、类型和最后修改时间。- 在使用示例中,我们定义了
$directoryPath变量来指定要遍历的目录路径,然后调用listDirectory函数获取目录列表,并遍历输出。
通过以上代码,你可以轻松地实现PHP目录的全量遍历和文件信息展示。希望这个实例能帮助你更好地理解和应用PHP目录遍历功能。
