Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menyenaraikan Direktori dan Fail secara Rekursif dengan PHP?

Bagaimana untuk Menyenaraikan Direktori dan Fail secara Rekursif dengan PHP?

Barbara Streisand
Barbara Streisandasal
2024-11-26 08:03:09363semak imbas

How to Recursively List Directories and Files with PHP?

Menyenaraikan Direktori Secara Rekursif dengan PHP

Untuk menyenaraikan semua folder, subfolder dan fail dalam direktori tertentu dalam PHP, anda boleh menggunakan fungsi scandir(). Alat berkuasa ini membolehkan anda memperoleh gambaran terperinci kandungan direktori.

Pertimbangkan struktur direktori berikut sebagai contoh:

Main Dir
 Dir1
  SubDir1
   File1
   File2
  SubDir2
   File3
   File4
 Dir2
  SubDir3
   File5
   File6
  SubDir4
   File7
   File8

Untuk menyenaraikan semua fail dan subdirektori, anda boleh menggunakan kod PHP berikut:

function listFolderFiles($dir){
    $ffs = scandir($dir);

    unset($ffs[array_search('.', $ffs, true)]);
    unset($ffs[array_search('..', $ffs, true)]);

    // prevent empty ordered elements
    if (count($ffs) < 1)
        return;

    echo '<ol>';
    foreach($ffs as $ff){
        echo '<li>'.$ff;
        if(is_dir($dir.'/'.$ff)) listFolderFiles($dir.'/'.$ff);
        echo '</li>';
    }
    echo '</ol>';
}

listFolderFiles('Main Dir');

Kod ini secara rekursif merentasi direktori yang diberikan, mengenal pasti semua fail dan subdirektori. Senarai yang terhasil akan dibentangkan dalam senarai HTML tersusun dan bersarang (

    ). Selain itu, kod tersebut mengecualikan "." lalai dan entri ".." yang mewakili direktori semasa dan induk, masing-masing.

    Dengan memanfaatkan fungsi scandir() dan pendekatan rekursif yang dipamerkan di atas, anda boleh mendapatkan inventori komprehensif kandungan mana-mana direktori dalam PHP dengan berkesan.

    Atas ialah kandungan terperinci Bagaimana untuk Menyenaraikan Direktori dan Fail secara Rekursif dengan PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn