PHP - Penyelarasan Berkas: Panduan Komprehensif untuk Pemula

Hai teman-teman pemula pengembang PHP! Hari ini, kita akan memulai perjalanan menarik ke dunia manipulasi berkas dalam PHP. Khususnya, kita akan mengeksplorasi bagaimana untuk membuat daftar berkas dalam sebuah direktori. Jangan khawatir jika Anda baru dalam programming - saya akan memandu Anda melalui setiap langkah dengan kesabaran seekor penyu tua. Ayo masuk ke dalamnya!

PHP - Listing Files

Mengerti Penyelarasan Direktori

Sebelum kita masuk ke kode, mari bicarakan apa arti penyelarasan direktori. Bayangkan Anda memiliki folder di komputer Anda yang penuh dengan berbagai macam berkas. Menyelaraskan berkas adalah seperti meminta PHP untuk memandang ke dalam folder itu dan memberitahu Anda apa yang ada di dalamnya. Ini adalah keterampilan penting bagi banyak aplikasi web, dari manajer berkas hingga galeri gambar.

Sekarang, PHP menyediakan dua fungsi utama untuk melakukan tugas ini: readdir() dan scandir(). Mari kita eksplorasi masing-masing dari ini secara rinci.

Fungsi readdir()

Apa itu readdir()?

Fungsi readdir() adalah seperti seorang anak yang curioso membuka pintu, memandang ke dalam sebuah kamar, dan memberitahu Anda tentang satu hal yang mereka lihat pada saat itu. Ini agak kuno tetapi masih sangat berguna dalam situasi tertentu.

Cara Menggunakan readdir()

Mari lihat contoh sederhana:

<?php
$dir = "/path/to/your/directory";

// Buka direktori
if ($handle = opendir($dir)) {
// Loop melalui direktori
while (false !== ($entry = readdir($handle))) {
// Lewati entri . dan ..
if ($entry != "." && $entry != "..") {
echo "$entry\n";
}
}
// Tutup handle direktori
closedir($handle);
}
?>

Mari kitauraikan ini:

  1. Kita mulai dengan menentukan path direktori.
  2. Kita gunakan opendir() untuk membuka direktori dan mendapatkan handle.
  3. Kita gunakan loop while dengan readdir() untuk membaca setiap entri.
  4. Kita lewati entri . dan .. (yang mewakili direktori saat ini dan direktori induk).
  5. Kita echo nama setiap berkas atau subdirektori.
  6. Akhirnya, kita tutup handle direktori.

Pros dan Cons dari readdir()

Pros Cons
Penggunaan memori rendah Lebih kompleks untuk digunakan
Baik untuk direktori besar Memerlukan sorting manual
Memungkinkan pengolahan satu berkas pada saat itu Tidak menyediakan detail berkas

Fungsi scandir()

Apa itu scandir()?

Sekarang, mari kita temui scandir() - petugas perpustakaan yang antusias diantara fungsi-fungsi PHP. Itu membaca seluruh direktori sekaligus dan mengembalikan array semua berkas dan direktori yang ditemukan.

Cara Menggunakan scandir()

Ini adalah contoh sederhana:

<?php
$dir = "/path/to/your/directory";

// Pindai direktori dan dapatkan daftar berkas
$files = scandir($dir);

// Loop melalui array dan cetak setiap berkas
foreach ($files as $file) {
// Lewati entri . dan ..
if ($file != "." && $file != "..") {
echo "$file\n";
}
}
?>

Mari kitauraikan ini:

  1. Kita tentukan path direktori.
  2. Kita gunakan scandir() untuk mendapatkan array semua berkas dan direktori.
  3. Kita gunakan loop foreach untuk mengiterasi array.
  4. Kita lewati entri . dan ...
  5. Kita echo nama setiap berkas atau subdirektori.

Pros dan Cons dari scandir()

Pros Cons
Mudah digunakan Penggunaan memori tinggi
Mengembalikan array yang disortir Mungkin lambat untuk direktori yang sangat besar
Mudah untuk memanipulasi hasil Memuat semua berkas ke memori sekaligus

Penggunaan Lanjut: Penyaringan dan Sorting

Sekarang kita sudah mengetahui dasar-dasar, mari kita tambahkan sedikit perasaan! Apa kalau Anda ingin menampilkan hanya jenis berkas tertentu atau mengurutkannya dalam cara tertentu?

Penyaringan Berkas berdasarkan Ekstensi

Ini adalah contoh untuk menampilkan hanya berkas PHP:

<?php
$dir = "/path/to/your/directory";
$files = scandir($dir);

foreach ($files as $file) {
if (pathinfo($file, PATHINFO_EXTENSION) == "php") {
echo "$file\n";
}
}
?>

Dalam contoh ini, kita gunakan fungsi pathinfo() untuk memeriksa ekstensi berkas.

Sorting Berkas berdasarkan Waktu Modifikasi

Mari kita urutkan berkas-berkas kita berdasarkan yang terbaru dimodifikasi:

<?php
$dir = "/path/to/your/directory";
$files = scandir($dir);

// Hapus . dan .. dari array
$files = array_diff($files, array('.', '..'));

// Urutkan berkas berdasarkan waktu modifikasi
array_multisort(
array_map('filemtime', array_map(function($file) use ($dir) {
return $dir . '/' . $file;
}, $files)),
SORT_DESC,
$files
);

foreach ($files as $file) {
echo "$file\n";
}
?>

Skrip ini menggunakan array_multisort() bersamaan dengan filemtime() untuk mengurutkan berkas berdasarkan waktu modifikasinya.

Kesimpulan

Selamat! Anda telah mengambil langkah pertama ke dunia manipulasi berkas dengan PHP. Apakah Anda menggunakan readdir() yang methodis atau scandir() yang cepat dan mudah, Anda sekarang memiliki kekuatan untuk menampilkan dan mengelola berkas dalam aplikasi PHP Anda.

Ingat, seperti belajar menunggang sepeda, menguasai konsep ini memerlukan latihan. Jangan khawatir untuk mencoba berbagai skenario dan kombinasi dari fungsi-fungsi ini. Sebelum Anda tahu, Anda akan dapat membuat sistem manajemen berkas kompleks dengan mudah!

Terus coding, terus belajar, dan terutama, bersenang-senang! Sampai jumpa lagi, semoga Anda senang PHP-ing!

Credits: Image by storyset