readdir()
函数用于读取目录句柄中的条目,但它本身不能直接获取文件的扩展属性
opendir()
函数打开目录。readdir()
函数读取目录中的每个文件。pathinfo()
函数获取文件扩展名。fileinfo
扩展(如果已安装)或 stat
结构来获取文件的扩展属性。以下是一个示例代码:
<?php
// 打开目录
$dir = opendir('path/to/directory');
if ($dir) {
// 读取目录中的每个文件
while (($entry = readdir($dir)) !== false) {
// 跳过 "." 和 ".." 目录
if ($entry == '.' || $entry == '..') {
continue;
}
// 获取文件扩展名
$extension = pathinfo($entry, PATHINFO_EXTENSION);
// 获取文件扩展属性(需要安装 fileinfo 扩展)
$finfo = new finfo(FILEINFO_MIME_TYPE);
$mimeType = $finfo->file($entry);
// 或者使用 stat 结构获取文件扩展属性(不依赖 fileinfo 扩展)
$stat = stat($entry);
$attributes = array(
'size' => $stat['size'],
'mtime' => $stat['mtime'],
// 其他属性...
);
// 输出文件信息
echo "File: $entry\n";
echo "Extension: $extension\n";
echo "MIME type: $mimeType\n";
echo "Attributes: " . print_r($attributes, true) . "\n\n";
}
// 关闭目录
closedir($dir);
} else {
echo "Error: Unable to open directory.";
}
?>
请注意,这个示例代码需要 fileinfo
扩展(在 PHP 5.3 及更高版本中默认可用)来获取文件的 MIME 类型。如果你的服务器没有启用 fileinfo
扩展,你可以考虑使用其他方法(如 exif_open()
)来获取特定类型的文件属性。