PHP Cara Menampilkan Daftar File (Listing) dengan DirectoryIterator

Di PHP ada beberapa cara untuk menampilkan daftar file dalam suatu folder seperti readdir(), glob(), scandir() dll. Masing-masing memiliki kelebihan dan kekurangan. readdir() adalah pilihan pertama saya karena menggunakan sedikit memory. Namun kekurangannya adalah data tidak tersortir seperti glob(). Jadi, saat menggunakan readdir() lalu memasukkan hasil kedalam satu Array lalu mensortir adalah sama dengan menggunakan glob() atau scandir(). Akan ada alokasi memory dalam membuat Array. Terlepas dari perbedaan performa, semua tetap dibutuhkan pada kondisi tertentu.

Sejak PHP5 disamping cara klasik juga tersedia versi OOP yaitu class DirectoryIterator. class tersebut terdapat pada SPL (Standard PHP Library). SPL sudah di-bundling dengan PHP sejak versi 5.0.0, jadi tidak perlu khawatir menggunakan class DirectoryIterator karena ekstensi SPL ini pasti selalu tersedia di PHP.

Berikut contoh penggunaannya:

  1. <?php 
  2.  
  3. $dir   = 'path/to/dir'; 
  4. $files = new DirectoryIterator($dir); 
  5.  
  6. echo '<ul>'; 
  7. foreach ($files as $f) { 
  8.     if ($f->isFile()) { 
  9.         echo '<li><b>File</b>: '.$f->getFilename().' <b>Path</b>: '.$f->getPathname().'</li>'; 
  10.  
  11.     } 
  12. } 
  13. echo '</ul>'; 

Keuntungan menggunakan DirectoryIterator adalah membuat kode menjadi mudah di-maintenance dan readable bagi sebagian orang. Didalam class ini terdapat beberapa method lain seputar file yang tidak digunakan dalam contoh diatas. Silahkan cek di http://php.net/manual/en/class.directoryiterator.php. Bersambung...