Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Kira bilangan fail dalam direktori dalam PHP

Kira bilangan fail dalam direktori dalam PHP

PHPz
PHPzke hadapan
2024-02-28 11:02:01406semak imbas

editor php Yuzai mengajar anda cara mengira bilangan fail dalam direktori dalam PHP. Dengan menggunakan fungsi sistem fail PHP, anda boleh dengan mudah beralih melalui direktori dan mengira bilangan fail di dalamnya. Ini boleh menjadi ciri yang sangat berguna dalam sesetengah projek, seperti mengira bilangan imej atau dokumen pada tapak web. Seterusnya, kami akan memperincikan cara menggunakan kod PHP untuk mencapai fungsi ini. Mari belajar bersama!


Gunakan kelas FilesystemIterator dalam php untuk mengira bilangan fail dalam direktori

PHP menyediakan kelas FilesystemIterator, cara yang elegan untuk mengira fail dalam direktori. Kelas ini mengandungi beberapa fungsi dan pemalar yang melaksanakan pelbagai operasi untuk mengulang sistem fail.

Gunakan fungsi iterator_count() untuk mengira bilangan elemen dalam lelaran.

Mari kita pertimbangkan struktur direktori berikut.

<code>
<code class="language-bash hljs">myDir
├── abc.<strong class="keylink">html</strong>
├── abc.jpeg
├── abc.php
└── abc.png
</code></code>

Pertama, cipta pembolehubah $iterator dan simpan FilesystemIterator() 的一个实例。 将第一个参数设置为 __DIR__ 并使用 FilesystemIterator::SKIP_DOTS sebagai parameter kedua dalam pembina.

__DIR__ 表示脚本所在的当前目录,第二个参数是一个标志,表示跳过。 和 .. wujud dalam direktori. Pembolehubah $iterator mengandungi lelaran sistem fail bagi direktori semasa.

Ia boleh diulang untuk mendapatkan maklumat seperti nama fail, bilangan fail, dsb.

Seterusnya, gunakan fungsi iterator_count() untuk mencetak nombor $iterator dalam direktori.

Kod contoh:

<code>
<code class="language-php hljs"><span class="hljs-variable">$iterator</span> = <span class="hljs-keyword">new</span> <span class="hljs-built_in">FilesystemIterator</span>(<span class="hljs-keyword">__DIR__</span>, <span class="hljs-built_in">FilesystemIterator</span>::SKIP_DOTS);
<span class="hljs-keyword">echo</span> <span class="hljs-string">"There are "</span>. iterator_count(<span class="hljs-variable">$iterator</span>). <span class="hljs-string">" files in the directory"</span>;
</code></code>

Outputnya adalah seperti berikut:

<code>
<code class="language-bash hljs">There are 4 files <span class="hljs-keyword">in</span> the directory
</code></code>

Oleh itu, kita boleh menggunakan kelas FilesystemIterator() untuk mengira bilangan fail dalam direktori.


Kira bilangan fail dalam direktori menggunakan fungsi glob() dan count() dalam PHP

Kita boleh menggunakan fungsi glob()count() 函数来获取目录中的文件数。 glob() untuk memberikan array fail dan folder yang sepadan dengan corak yang ditentukan.

Kita boleh menggunakan * untuk mendapatkan semua fail dalam direktori. Seterusnya, kita boleh menggunakan fungsi count() untuk mendapatkan bilangan elemen dalam tatasusunan ini.

Contohnya, buat pembolehubah $path untuk menyimpan laluan tepat direktori tempat fail akan dikira. Seterusnya, gunakan untuk menggabungkan pembolehubah $pathglob() 函数并将该变量与 /*.

Hasilnya, tatasusunan semua fail dalam myDir dicipta. Akhir sekali, gunakan fungsi glob() 函数的结果使用 count() pada hasil fungsi glob().

Dengan cara ini, anda boleh menyemak bilangan fail dalam direktori myDir. Contoh kod berikut mewakili struktur fail yang digunakan dalam contoh pertama.

Kod contoh:

<code>
<code class="language-php hljs"><span class="hljs-variable">$path</span> =<span class="hljs-variable">$_SERVER</span>[<span class="hljs-string">'DOCUMENT_ROOT'</span>].<span class="hljs-string">"/myDir"</span>;
<span class="hljs-variable">$num</span> = count(glob(<span class="hljs-variable">$path</span> . <span class="hljs-string">"/*"</span>));
<span class="hljs-keyword">echo</span> <span class="hljs-variable">$num</span>;
</code></code>

Outputnya adalah seperti berikut:

<code>
<code class="language-bash hljs">4
</code></code>

Kira bilangan fail dalam direktori PHP menggunakan fungsi scandir() dan count()

Kaedah ini serupa dengan kaedah kedua. Satu-satunya perbezaan di sini ialah kami menggunakan fungsi scandir() 函数而不是 glob().

Kami boleh menyediakan laluan direktori sebagai parameter kepada fungsi scandir(). Fungsi ini mengembalikan tatasusunan yang mengandungi semua kandungan direktori, termasuk ....

Seterusnya, kita boleh menggunakan fungsi count() 函数来获取目录中内容的数量。 最后,重要的部分是将 count() 函数的结果减去 2,以去除 .... untuk mendapatkan bilangan kandungan dalam direktori. Akhir sekali, bahagian penting ialah tolak 2 daripada hasil fungsi

untuk mengeluarkan kiraan

.

Oleh itu, kita boleh mendapatkan bilangan sebenar fail dalam direktori.

Kod contoh:

<code>
<code class="language-php hljs"><span class="hljs-variable">$path</span> =<span class="hljs-variable">$_SERVER</span>[<span class="hljs-string">'DOCUMENT_ROOT'</span>].<span class="hljs-string">"/myDir"</span>;
<span class="hljs-variable">$num</span> = count(scandir(<span class="hljs-variable">$path</span>))-<span class="hljs-number">2</span>;
<span class="hljs-keyword">echo</span> <span class="hljs-string">"there are <span class="hljs-subst">$num</span> files in the directory"</span>;
</code></code>
🎜 Outputnya adalah seperti berikut:🎜
<code>
<code class="language-bash hljs">there are 4 files <span class="hljs-keyword">in</span> the directory
</code></code>

Atas ialah kandungan terperinci Kira bilangan fail dalam direktori dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:lsjlt.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam