在PHP中,目录遍历是一个常见的任务,它可以帮助我们列出目录中的所有文件和子目录,并获取文件的相关信息。以下是一个简单而实用的PHP脚本示例,它将展示如何实现目录遍历和文件信息查看。
脚本概述
这个脚本将执行以下操作:
- 检查提供的目录路径是否存在。
- 使用递归函数遍历目录中的所有文件和子目录。
- 对于每个文件,打印出文件名、大小、修改时间和文件类型。
- 对于每个子目录,递归调用函数以继续遍历。
PHP脚本示例
<?php
function listDirectoryContents($dir) {
// 检查目录路径是否存在
if (!file_exists($dir)) {
echo "目录不存在:$dir\n";
return;
}
// 打开目录句柄
if ($handle = opendir($dir)) {
echo "目录内容:\n";
echo "------------------------\n";
// 遍历目录中的文件和子目录
while (false !== ($entry = readdir($handle))) {
// 忽略点(.)和点点(..)目录
if ($entry != "." && $entry != "..") {
// 构建完整的文件路径
$fullPath = $dir . DIRECTORY_SEPARATOR . $entry;
// 检查是文件还是目录
if (is_dir($fullPath)) {
echo "目录:$entry\n";
// 递归调用函数
listDirectoryContents($fullPath);
} else {
// 获取文件信息
$fileInfo = pathinfo($fullPath);
$fileSize = filesize($fullPath);
$fileModTime = date("Y-m-d H:i:s", filemtime($fullPath));
$fileType = $fileInfo['extension'];
// 打印文件信息
echo "文件:$entry\n";
echo "大小:{$fileSize} bytes\n";
echo "修改时间:$fileModTime\n";
echo "类型:.$fileType\n";
echo "------------------------\n";
}
}
}
// 关闭目录句柄
closedir($handle);
} else {
echo "无法打开目录:$dir\n";
}
}
// 使用示例
$directoryPath = "/path/to/your/directory"; // 替换为你的目录路径
listDirectoryContents($directoryPath);
?>
使用说明
- 将上述脚本保存为一个
.php文件,例如list_directory.php。 - 将
$directoryPath变量替换为你想要遍历的目录路径。 - 使用PHP命令行工具(例如
php -f list_directory.php)运行脚本。
这个脚本提供了一个基本的目录遍历和文件信息查看功能。根据实际需求,你可以扩展这个脚本的功能,例如添加过滤条件、处理文件权限、创建文件列表等。
