Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Membaca Subdirektori dan Memproses Fail secara Rekursif dalam PHP?

Bagaimana untuk Membaca Subdirektori dan Memproses Fail secara Rekursif dalam PHP?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-23 06:33:29600semak imbas

How to Recursively Read Subdirectories and Process Files in PHP?

Cara Membaca Subdirektori dan Mengulangi Fail dalam PHP

Untuk mengulangi fail dalam subdirektori, anda boleh memanfaatkan iterator rekursif PHP.

Recursive Directory Iterator

Kelas RecursiveDirectoryIterator membolehkan anda melintasi struktur direktori secara rekursif. Setiap lelaran mengembalikan objek SplFileInfo baharu yang mewakili fail atau direktori.

Recursive Iterator Iterator

Kelas RecursiveIteratorIterator membungkus RecursiveDirectoryIterator dan menyediakan cara yang mudah untuk melintasi direktori pokok, melawati subdirektori secara rekursif.

Kod Contoh

Berikut ialah coretan kod contoh yang mempamerkan cara menggunakan iterator ini:

<code class="php">$main = "MainDirectory";
$di = new RecursiveDirectoryIterator($main, RecursiveDirectoryIterator::SKIP_DOTS);
$rii = new RecursiveIteratorIterator($di);

foreach ($rii as $filename => $file) {
    // Do something with each file
    echo "$filename - {$file->getSize()} bytes\n";
}</code>

Kod ini memulakan RecursiveDirectoryIterator untuk MainDirectory dan melangkau direktori semasa dan induk (. dan ..). Kemudian, ia mencipta RecursiveIteratorIterator dan melelang ke atas pepohon direktori. Setiap kali ia menemui fail, ia menggemakan nama fail dan saiz fail.

Nota: Anda boleh mengubah suai melakukan sesuatu dengan setiap bahagian fail untuk melaksanakan operasi yang diingini pada setiap fail. Contoh ini hanya mencetak nama fail dan saiz untuk setiap fail.

Atas ialah kandungan terperinci Bagaimana untuk Membaca Subdirektori dan Memproses Fail secara Rekursif dalam 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