Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana Mengira Fail dalam Direktori Menggunakan PHP?

Bagaimana Mengira Fail dalam Direktori Menggunakan PHP?

DDD
DDDasal
2024-11-05 16:39:02527semak imbas

How to Count Files in a Directory Using PHP?

Mengira Fail dalam Direktori Menggunakan PHP

Dalam projek anda, anda sedang mencari untuk menentukan bilangan fail dalam direktori tertentu. Mari kita mendalami cara untuk mencapai ini menggunakan PHP.

Kod yang anda berikan pada mulanya berulang melalui direktori menggunakan fungsi readdir(). Walau bagaimanapun, ia tidak mengambil kira fail tersembunyi atau subdirektori. Untuk menangani perkara ini, anda boleh menggunakan pendekatan yang diperhalusi berikut:

<code class="php">$dir = opendir('uploads/'); # Directory to count files from
$i = 0; # Initialize counter
$excludedFiles = ['.', '..']; # Ignore these files

# Iterate through the directory
while (false !== ($file = readdir($dir))) {
    if (!in_array($file, $excludedFiles) && !is_dir($file)) {
        $i++;
    }
}

closedir($dir);
echo "There were $i files"; # Output the count</code>

Dengan mengecualikan fail tersembunyi (bermula dengan ".") dan subdirektori (ditentukan oleh is_dir()), kod yang disemak ini hanya mengira fail biasa dengan tepat dalam direktori yang ditentukan.

Sebagai alternatif, anda boleh menggunakan pendekatan yang lebih ringkas berdasarkan FilesystemIterator:

<code class="php">$fi = new FilesystemIterator(__DIR__, FilesystemIterator::SKIP_DOTS);
printf("There were %d Files", iterator_count($fi));</code>

Di sini, kelas FilesystemIterator melangkau fail tersembunyi (.) dan direktori induk (.. ), menjadikannya penyelesaian yang mudah untuk mengira fail. Kedua-dua kaedah menyediakan pengiraan fail yang tepat dan cekap dalam direktori, bergantung pada pilihan anda.

Atas ialah kandungan terperinci Bagaimana Mengira Fail dalam Direktori Menggunakan 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