PHP Directory: Membaca Isi Folder

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).

Baca Juga

Ali Akbar

Software Developer yang fokus mengembangkan aplikasi berbasis Web dan Desktop. Senang mempelajari teknologi baru terutama di bidang web design dan web development.

View all posts by Ali Akbar →

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *