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
- Pastikan nama direktori sesuai dengan standar penamaan file dan direktori.
- Cek keberadaan direktori sebelum dibuat agar tidak muncul pesan error.
- Pastikan lokasi menaruh direktori baru sudah diset permission 777.
- 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("([^wsd-_~,;:[](].]|[.]{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:
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("([^wsd-_~,;:[](].]|[.]{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:
Tampilan script pada browser:
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 :


