0Pricing
PHP Academy · Pelajaran

Mengelola Direktori

Buat daftar, buat, dan hapus direktori dengan scandir dan mkdir.

Mengelola Direktori adalah pelajaran PHP Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar PHP Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus PHP Academy mencakup 4 pelajaran total.

Operasi Direktori dalam PHP

PHP menyediakan fungsi untuk mencantumkan, membuat, menavigasi, dan menghapus direktori di server:

  • scandir() — mencantumkan isi direktori
  • mkdir() — membuat direktori
  • rmdir() — menghapus direktori kosong
  • glob() — menemukan berkas yang cocok dengan pola

scandir()

Cantumkan semua berkas dan direktori di dalam sebuah direktori:

<?php
$entries = scandir('/var/www/html/uploads');

// scandir includes '.' and '..'
$entries = array_diff($entries, ['.', '..']);

foreach ($entries as $entry) {
    echo $entry . PHP_EOL;
}

Pencocokan Pola glob()

glob() mengembalikan berkas yang cocok dengan pola bergaya shell:

<?php
// Find all PHP files in a directory
$phpFiles = glob('/var/www/html/*.php');

// Recursively with GLOB_BRACE
$logs = glob('/var/log/{app,error,access}.log', GLOB_BRACE);

foreach ($phpFiles as $file) {
    echo basename($file) . PHP_EOL;
}

mkdir() dan Izin

Buat satu atau beberapa direktori bertingkat:

<?php
$dir = '/var/www/uploads/2024/05';

// Create nested directories in one call:
if (!is_dir($dir)) {
    mkdir($dir, 0755, true);  // true = recursive
    echo "Created: $dir";
}

Menghapus Direktori

rmdir() hanya menghapus direktori kosong. Untuk menghapus direktori beserta isinya, gunakan fungsi rekursif:

<?php
function deleteDir(string $path): void {
    foreach (scandir($path) as $entry) {
        if ($entry === '.' || $entry === '..') continue;
        $full = $path . DIRECTORY_SEPARATOR . $entry;
        is_dir($full) ? deleteDir($full) : unlink($full);
    }
    rmdir($path);
}

deleteDir('/tmp/old_cache');

Iterasi Direktori dengan DirectoryIterator

Cara OO untuk melakukan iterasi pada isi direktori:

<?php
$dir = new DirectoryIterator('/var/www/html/images');

foreach ($dir as $info) {
    if ($info->isDot()) continue;
    echo $info->getFilename();
    echo ' (' . $info->getSize() . ' bytes)';
    echo PHP_EOL;
}

RecursiveDirectoryIterator

Lakukan iterasi secara rekursif pada semua berkas dalam hierarki direktori:

<?php
$iterator = new RecursiveIteratorIterator(
    new RecursiveDirectoryIterator('/var/www/src')
);

foreach ($iterator as $file) {
    if ($file->isDot()) continue;
    if ($file->getExtension() === 'php') {
        echo $file->getPathname() . PHP_EOL;
    }
}

getcwd dan chdir

Dapatkan dan ubah direktori kerja saat ini:

<?php
$originalDir = getcwd();
echo 'Current: ' . $originalDir . PHP_EOL;

chdir('/var/www/html');
echo 'Changed to: ' . getcwd() . PHP_EOL;

// Restore
chdir($originalDir);
echo 'Restored: ' . getcwd() . PHP_EOL;

Manipulasi Jalur

Bangun dan uraikan jalur berkas dengan konstanta dan fungsi portabel:

<?php
// DIRECTORY_SEPARATOR = '/' on Unix, '\\' on Windows
$base    = '/var/www/app';
$subPath = 'uploads' . DIRECTORY_SEPARATOR . 'images';
$full    = $base . DIRECTORY_SEPARATOR . $subPath;

echo realpath($full);  // resolves symlinks

// __DIR__ is the directory of the current file
$configPath = __DIR__ . '/../config/settings.json';
echo realpath($configPath);

Ruang Disk

Periksa ruang disk yang tersedia dan total:

<?php
$path = '/var/www';

$free  = disk_free_space($path);
$total = disk_total_space($path);
$used  = $total - $free;

echo 'Used: ' . round($used / 1024**3, 2) . ' GB';
echo 'Free: ' . round($free / 1024**3, 2) . ' GB';
echo 'Total: ' . round($total / 1024**3, 2) . ' GB';

Direktori Sementara SPL

Selalu gunakan sys_get_temp_dir() untuk menemukan direktori sementara yang benar di berbagai platform:

<?php
$tmpDir = sys_get_temp_dir();
echo 'Temp dir: ' . $tmpDir;

// Create a unique temporary directory
$uniqueDir = $tmpDir . DIRECTORY_SEPARATOR . 'myapp_' . uniqid();
mkdir($uniqueDir, 0700);

// ... use directory ...
// cleanup when done

Pemeriksaan Singkat

Fungsi PHP mana yang membuat direktori bertingkat secara rekursif dalam satu pemanggilan?

Rangkuman: Bekerja dengan Direktori

Operasi direktori:

  • scandir() — mencantumkan isi (termasuk . dan ..)
  • glob() — menemukan berkas berdasarkan pola
  • mkdir($path, 0755, true) — pembuatan secara rekursif
  • rmdir() — menghapus direktori kosong
  • RecursiveDirectoryIterator untuk penelusuran mendalam
  • __DIR__ dan DIRECTORY_SEPARATOR untuk jalur portabel

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Mengelola Direktori” gratis?

Ya — teks lengkap “Mengelola Direktori” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus PHP Academy, upgrade ke CoddyKit PRO. Kursus PHP Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Mengelola Direktori”?

Buat daftar, buat, dan hapus direktori dengan scandir dan mkdir. Kamu berlatih PHP Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai PHP Academy?

Tidak diperlukan pengalaman sebelumnya. PHP Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Mengelola Direktori” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran PHP Academy ini?

Ya. Setiap pelajaran PHP Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Membaca File dengan PHP
  2. Menulis dan Menambahkan Isi ke File
  3. Mengelola Direktori
  4. Menangani Unggahan File
← Kembali ke PHP Academy