Selain mengelola file, PHP juga dapat menelusuri isi folder di server. Kemampuan PHP Directory ini berguna untuk membuat fitur seperti galeri yang menampilkan semua gambar dalam sebuah folder, atau manajer file sederhana.
Membaca Isi Folder dengan scandir()
Cara termudah adalah scandir(), yang mengembalikan array berisi semua nama file dan folder:
<?php
$isi = scandir("uploads");
foreach ($isi as $file) {
// lewati entri titik . dan ..
if ($file != "." && $file != "..") {
echo $file . "<br>";
}
}
?>
Perhatikan pengecekan . dan .. — dua entri ini selalu ada di setiap folder dan biasanya perlu diabaikan.
Cara Klasik: opendir dan readdir
Alternatif lain adalah membuka folder lalu membacanya satu per satu:
<?php
$dir = opendir("uploads");
while (($file = readdir($dir)) !== false) {
if ($file != "." && $file != "..") {
echo $file . "<br>";
}
}
closedir($dir);
?>
Menyaring Berdasarkan Tipe File
Sering kali kita hanya ingin menampilkan gambar saja. Gabungkan dengan pengecekan ekstensi:
<?php
foreach (scandir("gambar") as $file) {
$ext = strtolower(pathinfo($file, PATHINFO_EXTENSION));
if (in_array($ext, ["jpg","jpeg","png","gif"])) {
echo "<img src='gambar/$file' width='120'>";
}
}
?>
Membuat dan Menghapus Folder
<?php
mkdir("folder_baru"); // membuat folder
mkdir("induk/anak", 0777, true); // membuat folder bertingkat
rmdir("folder_kosong"); // hanya bisa hapus folder kosong
?>
Memeriksa Path
Gunakan is_dir() untuk memastikan sebuah path adalah folder, dan is_file() untuk file:
<?php
if (is_dir("uploads")) {
echo "uploads adalah folder";
}
?>
Contoh Praktik: Galeri Otomatis
<?php
$gambar = glob("galeri/*.{jpg,png}", GLOB_BRACE);
foreach ($gambar as $g) {
echo "<img src='$g' width='150'> ";
}
?>
Fungsi glob() di atas adalah cara ringkas mengambil file yang cocok dengan pola tertentu.
Kesalahan Umum
- Lupa mengabaikan . dan .. sehingga muncul entri aneh.
- Mencoba menghapus folder berisi file dengan
rmdir()— folder harus kosong dulu.
Kesimpulan
Fungsi PHP Directory seperti scandir() dan glob() memudahkan pengelolaan folder secara dinamis — sangat berguna untuk fitur galeri, daftar unduhan, atau manajer file.
Referensi: untuk penjelasan lebih mendalam, kunjungi dokumentasi resmi PHP (php.net).

