Skip to content

emka.web.id

menulis pengetahuan – merekam peradaban

Menu
  • Home
  • Tutorial
  • Search
Menu

Belajar PHP: Membuat Peta Folder (Map Directory)

Posted on August 12, 2012

Peta Folder atau Map Directory yang saya maksud adalah peta folder dan file yang ada pada suatu folder target, tersusun secara hierarkis dan dapat digunakan untuk keperluan lebih lanjut, seperti membangun interface treeview layaknya Windows Explorer.

Untuk membangun peta folder/map directory tersebut, saya menemukan fungsi menarik yang terpaketkan bersama CodeIgniter 2.0 (directory_helper.php). Berikut fungsinya:

[sourcecode language=”php”]
/**
* Create a Directory Map
*
* Reads the specified directory and builds an array
* representation of it. Sub-folders contained with the
* directory will be mapped as well.
*
* @access public
* @param string path to source
* @param int depth of directories to traverse (0 = fully recursive, 1 = current dir, etc)
* @return array
*/
function directory_map($source_dir, $directory_depth = 0, $hidden = FALSE)
{
if ($fp = @opendir($source_dir))
{
$filedata = array();
$new_depth = $directory_depth – 1;
$source_dir = rtrim($source_dir, DIRECTORY_SEPARATOR).DIRECTORY_SEPARATOR;

while (FALSE !== ($file = readdir($fp)))
{
// Remove ‘.’, ‘..’, and hidden files [optional]
if ( ! trim($file, ‘.’) OR ($hidden == FALSE && $file[0] == ‘.’))
{
continue;
}

if (($directory_depth < 1 OR $new_depth > 0) && @is_dir($source_dir.$file))
{
$filedata[$file] = directory_map($source_dir.$file.DIRECTORY_SEPARATOR, $new_depth, $hidden);
}
else
{
$filedata[] = $file;
}
}

closedir($fp);
return $filedata;
}

return FALSE;
}
[/sourcecode]

Untuk mencobanya, silakan buat satu script PHP kecil:
[sourcecode language=”php”]
$map =directory_map(‘./wp-admin’,2);
echo ‘<pre>’;
print_r($map);
echo ‘</pre>’;
[/sourcecode]

Contoh diatas akan membangun peta folder dari folder wp-admin dengan kedalaman hierarkis 2 layer. hasilnya:
[sourcecode]
Array
(
[0] => about.php
[1] => admin-ajax.php
[2] => admin-footer.php
[3] => admin-functions.php
[4] => admin-header.php
[5] => admin-post.php
[6] => admin.php
[7] => async-upload.php
[8] => comment.php
[9] => credits.php
[css] => Array
(
[0] => colors-classic.css
[1] => colors-classic.dev.css
[2] => colors-fresh.css
[3] => colors-fresh.dev.css
[4] => customize-controls-rtl.css
[5] => customize-controls-rtl.dev.css
[6] => customize-controls.css
[7] => customize-controls.dev.css
[8] => farbtastic.css
[9] => ie-rtl.css
[10] => ie-rtl.dev.css
[11] => ie.css
[12] => ie.dev.css
[13] => install.css
[14] => install.dev.css
[15] => media-rtl.css
[16] => media-rtl.dev.css
[17] => media.css
[18] => media.dev.css
[19] => wp-admin-rtl.css
[20] => wp-admin-rtl.dev.css
[21] => wp-admin.css
[22] => wp-admin.dev.css
)

[10] => custom-background.php
[11] => custom-header.php
[12] => customize.php
[13] => edit-comments.php
[14] => edit-form-advanced.php
[15] => edit-form-comment.php
[16] => edit-link-form.php
[17] => edit-tag-form.php
[18] => edit-tags.php
[19] => edit.php
[20] => export.php
[21] => freedoms.php
[22] => gears-manifest.php
[images] => Array
(
[0] => align-center.png
[1] => align-left.png
[2] => align-none.png
[3] => align-right.png
[4] => archive-link.png
[5] => arrows-dark-vs.png
[6] => arrows-dark.png
[7] => arrows-vs.png
[8] => arrows.png
[9] => blue-grad.png
[10] => bubble_bg-rtl.gif
[11] => bubble_bg.gif
[12] => button-grad-active.png
[13] => button-grad.png
[14] => comment-grey-bubble.png
[15] => date-button.gif
[16] => ed-bg-vs.gif
[17] => ed-bg.gif
[18] => fade-butt.png
[19] => fav-arrow-rtl.gif
[20] => fav-arrow.gif
[21] => fav-vs.png
[22] => fav.png
[23] => generic.png
[24] => gray-grad.png
[25] => gray-star.png
[26] => icons32-2x.png
[27] => icons32-vs-2x.png
[28] => icons32-vs.png
[29] => icons32.png
[30] => imgedit-icons.png
[31] => list.png
[32] => loading-publish.gif
[33] => loading.gif
[34] => logo-ghost.png
[35] => logo-login.png
[36] => logo.gif
[37] => marker.png
[38] => mask.png
[39] => media-button-image.gif
[40] => media-button-music.gif
[41] => media-button-other.gif
[42] => media-button-video.gif
[43] => media-button.png
[44] => menu-2x.png
[45] => menu-arrow-frame-rtl.png
[46] => menu-arrow-frame.png
[47] => menu-arrows.gif
[48] => menu-bits-rtl-vs.gif
[49] => menu-bits-rtl.gif
[50] => menu-bits-vs.gif
[51] => menu-bits.gif
[52] => menu-dark-rtl-vs.gif
[53] => menu-dark-rtl.gif
[54] => menu-dark-vs.gif
[55] => menu-dark.gif
[56] => menu-shadow-rtl.png
[57] => menu-shadow.png
[58] => menu-vs.png
[59] => menu.png
[60] => no.png
[61] => press-this.png
[62] => required.gif
[63] => resize-rtl.gif
[64] => resize.gif
[65] => screen-options-toggle-vs.gif
[66] => screen-options-toggle.gif
[67] => screenshots
[68] => se.png
[69] => sort.gif
[70] => star.png
[71] => stars-rtl.png
[72] => stars.png
[73] => toggle-arrow-rtl.gif
[74] => toggle-arrow.gif
[75] => upload-classic.png
[76] => upload-fresh.png
[77] => wheel.png
[78] => white-grad-active.png
[79] => white-grad.png
[80] => widgets-arrow-vs.gif
[81] => widgets-arrow.gif
[82] => wordpress-logo-2x.png
[83] => wordpress-logo.png
[84] => wp-badge-2x.png
[85] => wp-badge.png
[86] => wp-logo-vs.png
[87] => wp-logo.png
[88] => wpspin_dark.gif
[89] => wpspin_light.gif
[90] => xit.gif
[91] => yes.png
)

[23] => import.php
[includes] => Array
(
[0] => admin.php
[1] => ajax-actions.php
[2] => bookmark.php
[3] => class-ftp-pure.php
[4] => class-ftp-sockets.php
[5] => class-ftp.php
[6] => class-pclzip.php
[7] => class-wp-comments-list-table.php
[8] => class-wp-filesystem-base.php
[9] => class-wp-filesystem-direct.php
[10] => class-wp-filesystem-ftpext.php
[11] => class-wp-filesystem-ftpsockets.php
[12] => class-wp-filesystem-ssh2.php
[13] => class-wp-importer.php
[14] => class-wp-links-list-table.php
[15] => class-wp-list-table.php
[16] => class-wp-media-list-table.php
[17] => class-wp-ms-sites-list-table.php
[18] => class-wp-ms-themes-list-table.php
[19] => class-wp-ms-users-list-table.php
[20] => class-wp-plugin-install-list-table.php
[21] => class-wp-plugins-list-table.php
[22] => class-wp-posts-list-table.php
[23] => class-wp-terms-list-table.php
[24] => class-wp-theme-install-list-table.php
[25] => class-wp-themes-list-table.php
[26] => class-wp-upgrader.php
[27] => class-wp-users-list-table.php
[28] => comment.php
[29] => continents-cities.php
[30] => dashboard.php
[31] => deprecated.php
[32] => export.php
[33] => file.php
[34] => image-edit.php
[35] => image.php
[36] => import.php
[37] => list-table.php
[38] => manifest.php
[39] => media.php
[40] => menu.php
[41] => meta-boxes.php
[42] => misc.php
[43] => ms-deprecated.php
[44] => ms.php
[45] => nav-menu.php
[46] => plugin-install.php
[47] => plugin.php
[48] => post.php
[49] => schema.php
[50] => screen.php
[51] => taxonomy.php
[52] => template.php
[53] => theme-install.php
[54] => theme.php
[55] => update-core.php
[56] => update.php
[57] => upgrade.php
[58] => user.php
[59] => widgets.php
)

[24] => index-extra.php
[25] => index.php
[26] => install-helper.php
[27] => install.php
[js] => Array
(
[0] => cat.dev.js
[1] => cat.js
[2] => categories.dev.js
[3] => categories.js
[4] => comment.dev.js
[5] => comment.js
[6] => common.dev.js
[7] => common.js
[8] => custom-background.dev.js
[9] => custom-background.js
[10] => custom-fields.dev.js
[11] => custom-fields.js
[12] => customize-controls.dev.js
[13] => customize-controls.js
[14] => dashboard.dev.js
[15] => dashboard.js
[16] => edit-comments.dev.js
[17] => edit-comments.js
[18] => editor.dev.js
[19] => editor.js
[20] => farbtastic.js
[21] => gallery.dev.js
[22] => gallery.js
[23] => image-edit.dev.js
[24] => image-edit.js
[25] => inline-edit-post.dev.js
[26] => inline-edit-post.js
[27] => inline-edit-tax.dev.js
[28] => inline-edit-tax.js
[29] => link.dev.js
[30] => link.js
[31] => media-gallery.dev.js
[32] => media-gallery.js
[33] => media-upload.dev.js
[34] => media-upload.js
[35] => media.dev.js
[36] => media.js
[37] => nav-menu.dev.js
[38] => nav-menu.js
[39] => password-strength-meter.dev.js
[40] => password-strength-meter.js
[41] => plugin-install.dev.js
[42] => plugin-install.js
[43] => post.dev.js
[44] => post.js
[45] => postbox.dev.js
[46] => postbox.js
[47] => revisions-js.php
[48] => set-post-thumbnail.dev.js
[49] => set-post-thumbnail.js
[50] => tags.dev.js
[51] => tags.js
[52] => theme-preview.dev.js
[53] => theme-preview.js
[54] => theme.dev.js
[55] => theme.js
[56] => user-profile.dev.js
[57] => user-profile.js
[58] => user-suggest.dev.js
[59] => user-suggest.js
[60] => utils.dev.js
[61] => utils.js
[62] => widgets.dev.js
[63] => widgets.js
[64] => word-count.dev.js
[65] => word-count.js
[66] => wp-fullscreen.dev.js
[67] => wp-fullscreen.js
[68] => xfn.dev.js
[69] => xfn.js
)

[28] => link-add.php
[29] => link-manager.php
[30] => link-parse-opml.php
[31] => link.php
[32] => load-scripts.php
[33] => load-styles.php
[maint] => Array
(
[0] => repair.php
)

[34] => media-new.php
[35] => media-upload.php
[36] => media.php
[37] => menu-header.php
[38] => menu.php
[39] => moderation.php
[40] => ms-admin.php
[41] => ms-delete-site.php
[42] => ms-edit.php
[43] => ms-options.php
[44] => ms-sites.php
[45] => ms-themes.php
[46] => ms-upgrade-network.php
[47] => ms-users.php
[48] => my-sites.php
[49] => nav-menus.php
[network] => Array
(
[0] => about.php
[1] => admin.php
[2] => credits.php
[3] => edit.php
[4] => freedoms.php
[5] => index-extra.php
[6] => index.php
[7] => menu.php
[8] => plugin-editor.php
[9] => plugin-install.php
[10] => plugins.php
[11] => profile.php
[12] => settings.php
[13] => setup.php
[14] => site-info.php
[15] => site-new.php
[16] => site-settings.php
[17] => site-themes.php
[18] => site-users.php
[19] => sites.php
[20] => theme-editor.php
[21] => theme-install.php
[22] => themes.php
[23] => update-core.php
[24] => update.php
[25] => upgrade.php
[26] => user-edit.php
[27] => user-new.php
[28] => users.php
)

[50] => network.php
[51] => options-discussion.php
[52] => options-general.php
[53] => options-head.php
[54] => options-media.php
[55] => options-permalink.php
[56] => options-privacy.php
[57] => options-reading.php
[58] => options-writing.php
[59] => options.php
[60] => plugin-editor.php
[61] => plugin-install.php
[62] => plugins.php
[63] => post-new.php
[64] => post.php
[65] => press-this.php
[66] => profile.php
[67] => revision.php
[68] => setup-config.php
[69] => theme-editor.php
[70] => theme-install.php
[71] => themes.php
[72] => tools.php
[73] => update-core.php
[74] => update.php
[75] => upgrade-functions.php
[76] => upgrade.php
[77] => upload.php
[user] => Array
(
[0] => about.php
[1] => admin.php
[2] => credits.php
[3] => freedoms.php
[4] => index-extra.php
[5] => index.php
[6] => menu.php
[7] => profile.php
[8] => user-edit.php
)

[78] => user-edit.php
[79] => user-new.php
[80] => users.php
[81] => widgets.php
)
[/sourcecode]

Selamat mencobanya!

NB. Thanks to CodeIgniter.

Terbaru

  • Caranya Mengatasi Kode Verifikasi PayPal yang Nggak Pernah Nyampe di HP
  • Inilah Cara Cek Pencairan KJP Plus Januari 2026 Biar Nggak Bingung Lagi
  • Inilah Cara Cek Dana PIP yang Cair Senin 19 Januari 2026 Lewat HP!
  • Ingin Kuliah Gratis di 2026? Ini Cara Daftar KIP Kuliah via HP dan Syarat Lengkapnya!
  • Inilah Cara Cek Status KIS Bansos Aktif Secara Instan Lewat Smartphone Kamu!
  • Inilah Cara Cek NIK KTP Penerima Bansos PKH dan BPNT Januari 2026 yang Paling Gampang!
  • Ini Trik Ampuh Mengatasi Kode Verifikasi PayPal yang Nggak Kunjung Masuk!
  • Sering Gagal Transaksi? Ini Cara Mengatasi Kode FP2769 di BRImo yang Bikin Pusing!
  • Layar Oppo Muncul Error Hubungan Baterai? Gini Cara Beresinnya Sampai Tuntas!
  • Cara Munculin Menu Hadiah Melolo di iPhone
  • Inilah Cara Main Melolo Drama Biar Gak Boros Kuota dan Saldo Cair Terus!
  • Ini Trik Rahasia Cara Memunculkan Potongan Harga TikTok Shop yang Nggak Muncul di Akun Kalian!
  • Threads Ternyata Sudah Lebih Rame dari X di Android
  • Bocoran Terbaru Pixel 10a: Tanggal Rilis Lebih Awal dan Harganya Nggak Jadi Naik?
  • Inilah Cara Main Aplikasi Layla Biar Dapat Teman dan Cuan Sekaligus!
  • Apa itu Apple Creator Studio?
  • Inilah Alasan Kenapa Tidak Bisa Melihat Status WA Padahal Tidak Diprivasi dan Trik Mengatasinya!
  • Lupa Email Akun Higgs Domino? Ini Cara Mengatasinya
  • Apa itu WhatsApp Aero? Aman atau Tidak + Cara Downloadnya
  • Inilah Kenapa Paket JNE Muncul Status Nobody At Home dan Cara Mengatasinya Biar Nggak Panik!
  • Gagal Aktivasi BSI Mobile? Inilah Arti Pesan Error 53 Saving Account Not Registered dan Solusinya
  • Cara Cuan dari Hobi Baca Novel/Komik Online
  • Hp Vivo Kalian Muncul Notif Data Spasial Sistem Rusak? Begini Trik Mengatasinya Sampai Tuntas!
  • Cara Buat Link Ujian Mencintai Diam-Diam Google Form, Tes Seberapa Besar Perasaan Kalian ke Crush!
  • Ini Penjelasan Mengenai Cara Mengubah Dosa Menjadi Diamond Game FF ML dan Saldo Shopeepay yang Sedang Viral
  • Trik Supaya Bisa Dapat Potongan Harga Rp100 di TikTok Tanpa Harus Reset HP!
  • Cara Input Bantuan IFP dan Laptop di Dapodik 2026.B, Aset Sekolah Aman
  • Cara Cairkan Rp170.000 dari Clear Blast, Terbukti Membayar ke DANA Tanpa Ribet!
  • Inilah Fakta Video Viral Arohi Mim 3 Menit 24 Detik yang Bikin Geger Netizen!
  • Inilah Sebenarnya Video Botol Aqua Viral yang Bikin Netizen TikTok Heboh dan Penasaran!
  • Ini Kronologi Hacking ESA (European Space Agency) 2025
  • Apa itu Zoom Stealer? Ini Definisi dan Bahaya Tersembunyi di Balik Ekstensi Browser Kalian
  • Apa itu Skandal BlackCat Ransomware?
  • Grain DataLoader Python Library Explained for Beginners
  • Controlling Ansible with AI: The New MCP Server Explained for Beginners
  • Cara Membuat AI Agent Super Cerdas dengan DeepAgents dan LangGraph
  • Perbedaan GPU vs TPU, Mana yang Terbaik
  • Tutorial Langfuse: Pantau & Optimasi Aplikasi LLM
  • Begini Teknik KV Caching dan Hemat Memori GPU saat Menjalankan LLM
  • Apa itu State Space Models (SSM) dalam AI?
  • Ini Kronologi Hacking ESA (European Space Agency) 2025
  • Apa itu Zoom Stealer? Ini Definisi dan Bahaya Tersembunyi di Balik Ekstensi Browser Kalian
  • Apa itu Skandal BlackCat Ransomware?
  • Apa itu ToneShell? Backdoor atau Malware Biasa?
  • Apa itu Parrot OS 7? Ini Review dan Update Terbesarnya
Beli Pemotong Rumput dengan Baterai IRONHOOF 588V Mesin Potong Rumput 88V disini https://s.shopee.co.id/70DBGTHtuJ
Beli Morning Star Kursi Gaming/Kantor disini: https://s.shopee.co.id/805iTUOPRV

©2026 emka.web.id | Design: Newspaperly WordPress Theme