Membuat halaman pencarian pada direktori folder memang tidak seperti membuat pencarian di database. Tidak banyak orang menggunakan ini dan hanya sedikit yang memakainya untuk bantuan sebuah script autoindex. Script yang akan Saya bagikan terdapat dari salah satu autoindex yang sangat populer dan Saya mengira tidak semua autoindex mempunyai menu pencarian file didalam direktori dan subdirektori.
Keunggulan yang didapatkan tidak membaca hanya 1 direktori saja, namun semua directori dijelajahi untuk mendapatkan file yang sesuai pada keyword. Dan script tersebut tidak memakai fungsi glob() untuk mem-filter file melainkan dengan kode lain yang menampillan teks dengan tambahan “” yang harus di replace supaya tidak ditampilkan.
Kode yang ditampilkan berbentuk sebuah array, jadi harus dipanggil dengan bantuan print_r. Dengan ini seseorang dapat mencari file dengan mudah dan tentunya tanpa masuk FTP/File Manager untuk mencarinya.
Silahkan lihat kode tersebut dibawah ini.!
<?php $filter = "namafile"; $folder = './'; $proses = new RecursiveDirectoryIterator("$folder"); foreach(new RecursiveIteratorIterator($proses) as $file) { if (!((strpos(strtolower($file), $filter)) === false) || empty($filter)) { $tampil[] = preg_replace("#/#", "/", $file); } } sort($tampil); print_r($tampil); ?>
Sedikit Penjelasan
• $filter – digunakan untuk mem-filter teks keyword yang akan ditampilkan, dapat memakai ekstensi ataupun nama file langsung.
• $folder – Digunakan untuk memilih folder untuk pencarian file, akan lebih baik penyimpanan file diatas dibuat pada ROOT direktori.
• $proses – Digunakan untuk menampilkan semua folder dan akan disambung kedalam foreach sebagai pembukaan semua array.
• if OR – Digunakan untuk membatasi kode tertentu dan memakai fungsi OR sebagai pembagian dalam bentuk ATAU. Jadi disitu akan memproses file jika tidak ada akan tidak tampil dan jika ada akan menampilkannya.
• $tampil – Digunakan untuk mereplace tanda yang ada supaya dihilangkan. Dari sini sudah terlihat memakai array.
• Sort – Digunakan untuk menampilkan list file secara urut dari A – Z (Alphabet).
• Print_r – Digunakan untuk menampilkan kode dari $tampil sebagai perintah array.
Sederhana bukan..? Untuk cara pemakaian bisa ditambah form pencarian sendiri supaya lebih sederhana dan pembuatan form tersebut Saya rasa sudah bisa dan bagi yang tidak bisa salin kode diatas dengan baik, bisa KLIK DISINI langsung dari situs pastebin. Jika ada yang dipertanyakan tentang diatas silahkan komentar :D.
Semoga bermanfaat dan selamat mencoba
13 comments
ini salahnya dimana gan, ada dua file dalam satu direktori “jumlah data” dan “data”, nah ketika difilter dengan kata kunci “data” keduanya muncul tapi sebaliknya ketika dicoba dengan kata kunci “jumlah data” gak muncul apapun.. solusinya gan
Setelah Saya tes beberapa menit yang lalu tepat seperti apa yang agan katakan, segalanya berfungsi dengan normal.
Jadi Saya membuat file bernama jumlah data.ext dan data.ext. Memang benar jika menuliskan data saja akan muncul keduanya. Namun Saya coba menuliskan jumlah data dan yang tampil pada Array adalah file jumlah data.ext saja.
Dengan begitu Saya masih tidak dapat menganggap ini sebagai suatu kesalahan terhadap kode diatas ya gan. Terima kasih.
Kok pas dicoba begini?
Mohon pencerahannya gan
Warning: sort() expects parameter 1 to be array, null given in C:\xampp\htdocs\tes.php on line 12
Itu dikarenakan tidak ada file apapun yang ada pada direktory yang diatur.
Master mau nanya lagi dong,
untuk penggunaan dengan form pencarian apakah ada yang harus diubah dari script php diatas?
Kalaupun ada yang diubah, mohon penjelasannya ya karena saya baru belajar php.. 🙂
Makasih..
Master mau nanya dong..
Itu isian string “namafile” yang ada di variabel $filter diganti dengan nama file yang mau dicari atau ttep begitu ya untuk menampilkan filenya?
Makasih sebelumnya.. 🙂
Untuk namafile, silahkan ubah dengan file yg akan dicari ya, bisa juga langsung dari extensi filenya 😀
Oke Terima Kasih Banyak master.. 🙂
Oya master mau nanya lagi dong,
untuk penggunaan dengan form pencarian apakah ada yang harus diubah dari script php diatas?
Kalaupun ada yang diubah, mohon penjelasannya ya karena saya baru belajar php.. 🙂
Makasih..
master, saya minta file .php nya kalau tidak keberatan krn ada tugas akhir perihal ini. sangat saya butuhkan sekali bantuan master. Mksh sblmya
Disini bos http://pastebin.com/zXdbmGqe 😀
kok scriptnya error ya ? :
Warning: preg_replace(): No ending delimiter ‘#’ found in C:\xampp\htdocs\percobaan\cari.php on line 10
Array ( [0] => )
Kode telah diperbaiki. Silahkan dicoba kembali. 😀
mantap gan, terima kasih atas scriptnya, sangat membantu 🙂