PHP GetFiles是一個非常常用的功能,它能夠將指定目錄下的所有文件以及文件夾都列出來,讓我們以后臺系統為例,來簡單講一下如何使用PHP GetFiles。
當我們需要在后臺中查看某個文件夾的時候,就可以用PHP GetFiles來實現。比如我們的網站有一個上傳圖片的功能,為了方便管理,需要將這些圖片分別歸類到不同的文件夾里,比如一些產品的圖片放在“產品圖片”文件夾中,可以通過代碼來實現:
$dir_path = './uploads/products/'; $dir = opendir($dir_path); while ($file = readdir($dir)) { if ($file != '.' && $file != '..') { echo "上面的代碼首先定義了圖片所在的文件夾路徑,通過opendir函數打開了這個文件夾,然后使用了readdir函數來讀取文件夾中的所有文件和文件夾。 在這個過程中,需要注意的是,在文件夾中,還會存在兩個特殊的文件夾,即“.”和“..”,分別代表當前文件夾和上一級文件夾。因此,在讀取文件時需要判斷是否為這兩個特殊文件夾。 下面這個例子中,我們將一個目錄下所有相同擴展名的文件名組合起來,以逗號相隔輸出:" . $file . "
"; } } closedir($dir);
$dir_path = "./uploads/products/"; $allowed_ext = array('jpg', 'gif', 'png'); if ( is_dir($dir_path) ) { $files = scandir($dir_path); foreach ( $files as $file ) { if ( in_array(pathinfo($file, PATHINFO_EXTENSION), $allowed_ext) ) { $filenames[] = $file; } } if ( count($filenames) ) { echo "從上面的代碼中可以看到,其實和上面的例子非常相似,主要的區別是在循環中使用了in_array函數進行過濾,并將其加入到一個數組中,最后使用implode函數將文件名輸出。 最后,需要注意的是在使用文件的時候,需要注意權限的相關問題,以及判斷文件是否存在等情況,否則可能會導致程序出現問題。這個文件夾下的所有 " . implode(", ", $allowed_ext) . " 文件是:
"; echo "" . implode(", ", $filenames) . "
"; } else { echo "這個文件夾下沒有 " . implode(", ", $allowed_ext) . " 文件
"; } } else { echo "無效的文件夾路徑
"; }