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()
)來獲取特定類型的文件屬性。