Monday, October 27, 2014

Membuat dan Menghapus Direktori dengan PHP

Direktori atau kita sering menyebutnya dengan folder adalah sebuah lokasi pada harddisk yang berisi file atau direktori lainnya. Dalam direktori bisa berisi banyak file dan banyak direktori lainnya yang sering sisebut sub direktori.

Direktori dan file merupakan bagian dari sebuah filesystem seperti Linux, Windows dan MacOS. PHP menyediakan beberapa fungsi untuk menangani direktori seperti untuk membuat dan menghapus direktori, membuka dan menutup direktori serta membaca isi direktori.

Membuat Direktori Baru

Fungsi yang digunakan untuk membuat direktori baru adalah mkdir(). Direktori yang dibuat otomatis berada satu lokasi dengan file PHP ditaruh. Jika ingin menaruh direktori baru ditempat lain harus disertakan path yang lengkap pada parameter name.

Cara penulisan fungsi mkdir()

mkdir(name,mode,recursive,context)

Keterangan parameter :
  • name, wajib diisi, merupakan nama direktori baru yang akan dibuat.
  • mode, opsional, secara default bernilai 777 (akses terluas).
  • recursive, opsional, khusus saat diset mode rekursif, yaitu mode pengulangan berdasarkan suatu kesamaan tertentu.
  • context, opsional, merupakan konteks dalam menangani file. Konteks adalah serangkaian pilihan yang dapat memodifikasi perilaku stream sebuah file. ( ditambahkan dalam PHP 5 )

Beberapa hal yang perlu diperhatikan saat membuat direktori baru dengan PHP

  1. Pastikan nama direktori sesuai dengan standar penamaan file dan direktori.
  2. Cek keberadaan direktori sebelum dibuat agar tidak muncul pesan error.
  3. Pastikan lokasi menaruh direktori baru sudah diset permission 777.
  4. Tampilkan status jika proses membuat direktori gagal atau berhasil.

Contoh script PHP untuk membuat direktori baru dengan fungsi mkdir()

 <html>     
 <body>   
 <form action="" method="POST">   
      Isi nama direktori yang akan dibuat:</br>    
      <input name="dir" type="text" /> <br />   
      <input type="submit" name="enter" value="Enter" />   
 </form>  
 <?php   
 if(isset($_POST["enter"]))  
 {  
  if(!empty($_POST["dir"]))  
  {  
      //menentukan nama direktori baru dari input text dan mengecek standar formatnya 
      $new_dir = preg_replace("([^\w\s\d\-_~,;:\[\]\(\].]|[\.]{2,})", '', $_POST["dir"]);   
      
      //mengecek keberadaan direktori
      if((file_exists($new_dir))&&(is_dir($new_dir)))  
      {  
       echo "Direktori <b>".$new_dir."</b> Sudah ada";       
      }  
      else  
      {  
       //menaruh fungsi mkdir kedalam sebuah handle  
       $handle = mkdir ($new_dir);  
       //mengecek proses handle fungsi mkdir   
       if ($handle) {   
       echo "Direktori <b>".$new_dir."</b> berhasil dibuat";   
       }   
       else {   
       echo "Direktori <b>".$new_dir."</b> gagal dibuat";   
       }  
      }  
  }  
 }   
 ?>   
 </body>     
 </html>   

Penjelasan script: 

Pada form terdapat sebuah input text dan sebuah input submit. Input text berfungsi untuk mamasukkan nama direktori baru yang akan dibuat, sedangkan tombol submit berfungsi untuk mengeksekusi serangkaian kode membuat direktori baru.

Proses diawali dengan mengambil text dari input text jika input text tidak dalam keadaan kosong. Selanjutnya input text tersebut dicek dan difilter formatnya sesuai dengan standar penamaan file dan direktori dengan fungsi preg_replace.

Setelah diperoleh nama yang baku, proses berlanjut pada pengecekan keberadaan direktori dengan fungsi file_exist() dan is_dir(). Tujuannya adalah mencegah error karena direktori yang dibuat sudah ada. Jika pengecekan menghasilkan nilai FALSE maka akan dijalankan fungsi mkdir untuk membuat direktori baru.

Pesan berhasil atau gagal ditampilkan dengan mengecek variabel $handle yang menangani fungsi mkdir().

Tampilan script pada browser:

membuat direktori dengan php

Menghapus Direktori

Untuk menghapus direktori digunakan fungsi rmdir(). Fungsi ini hanya bisa dipakai untuk menghapus direktori yang kosong. Untuk direktori yang berisi file harus dihapus semua file didalamnya, baru kemudian dihapus direktori yang sudah kosong.

Pastikan direktori yang akan dihapus ada dengan fungsi file_exist() dan pastikan benar-benar berupa direktori dengan fungsi is_dir() lalu cek juga permissionnya. Fungsi rmdir() mengembalikan nilai TRUE jika berhasil dan FALSE jika gagal.

Cara penulisan fungsi rmdir()

rmdir(name,context)

Keterangan parameter :
  • name, wajib diisi, merupakan nama direktori baru yang akan dibuat.
  • context, opsional, merupakan konteks dalam menangani file. Konteks adalah serangkaian pilihan yang dapat memodifikasi perilaku stream sebuah file. ( ditambahkan dalam PHP 5 )

Contoh script PHP untuk menghapus direktori dengan fungsi rmdir()

  <html>     
  <body>    
  <form action="" method="POST">    
    Isikan nama direktori yang akan dihapus:</br>    
    <input name="dir" type="text" /> <br />    
    <input type="submit" name="enter" value="Hapus" />    
  </form>   
  <?php    
  if(isset($_POST["enter"]))   
  {   
  if(!empty($_POST["dir"]))   
  {   
    //menentukan nama direktori baru dari input text dan mengecek standar formatnya   
    $target_dir = preg_replace("([^\w\s\d\-_~,;:\[\]\(\].]|[\.]{2,})", '', $_POST["dir"]);    
    //mengecek keberadaan direktori  
    if((file_exists($target_dir))&&(is_dir($target_dir)))   
    {   
     //menaruh fungsi rmdir kedalam sebuah handle   
     $handle = rmdir ($target_dir);   
     //mengecek proses handle fungsi rmdir    
     if ($handle) {    
     echo "Direktori <b>".$target_dir."</b> berhasil dihapus";    
     }    
     else {    
     echo "Direktori <b>".$target_dir."</b> gagal dihapus";    
     }          
    }   
    else   
    {   
     echo "Direktori <b>".$target_dir."</b> Tidak ada";  
    }   
  }   
  }    
  ?>    
  </body>     
  </html>    

Penjelasan Script:

Pada form terdapat satu input text untuk mengisi nama direktori yang akan dihapus dan sebuah input submit untuk mengeksekusi script. Selanjutnya seperti pada saat membuat direktori, terdapat fungsi preg_replace untuk mengecek standar format nama direktori.

Proses dilanjutkan dengan mengecek keberadaan direktori, ini bertujuan untuk mencegah error. Jika direktori tidak ada maka fungsi rmdir tidak akan dieksekusi. Jika ada, direktori akan dihapus dengan perintah rmdir ($target_dir). Jika proses berhasil akan ditampilkan pesan Berhasil dan jika gagal akan ditampilkan pesan gagal.

Tampilan script pada browser:


menghapus direktori dengan php

Demikian cara membuat dan menghapus direktori dengan PHP. Untuk cara membuka, manutup dan mambaca isi file pada direktori insyaAllah akan ditulis pada artikel selanjutnya.

Referensi :

5 komentar:

  1. Juragan Suhu
    \ada contoh sourche nya gak?
    jadi tau dimana penempatan direktori yang bener

    ReplyDelete
    Replies
    1. Lha itu di atas kan sudah ada contoh scriptnya juragan...
      Silahkan ditrek saja langsung

      Delete
  2. mas untuk script yg pertama saya masih bingung
    di bagian mana sintax yg digunakan untuk membuat folder baru....
    pohon di jelasin

    ReplyDelete