首頁  >  文章  >  後端開發  >  在 PHP 中計算目錄中的檔案個數

在 PHP 中計算目錄中的檔案個數

PHPz
PHPz轉載
2024-02-28 11:02:01406瀏覽

php小編魚仔教你如何在PHP中計算目錄中的檔案數。透過使用PHP的檔案系統函數,可以輕鬆遍歷目錄並計算其中檔案的數量。這在某些項目中可能是非常有用的功能,例如統計網站上的圖片數量或文件數量。接下來,我們將詳細介紹如何使用PHP程式碼來實現這項功能。讓我們一起來學習吧!


php 中使用 FilesystemIterator 類別來計算目錄中的檔案數

PHP 提供了 FilesystemIterator 類,這是計算目錄中檔案的優雅方法。該類別包含許多函數和常數,它們執行用於迭代檔案系統的各種操作。

使用 iterator_count() 函數計算迭代器中元素的數量。

讓我們考慮以下目錄結構。

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

首先,建立一個變數 $iterator 並儲存 FilesystemIterator() 的一個實例。將第一個參數設為 __DIR__ 並使用 FilesystemIterator::SKIP_DOTS 作為建構子中的第二個參數。

__DIR__ 表示腳本所在的目前目錄,第二個參數是一個標誌,表示跳過。和 .. 存在於目錄中。 $iterator 變數包含目前目錄的檔案系統迭代器。

可以迭代它以獲取文件名、文件數等資訊。

接下來,使用 iterator_count() 函數列印目錄中 $iterator 的數量。

範例程式碼:

<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>

輸出結果如下:

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

因此,我們可以使用 FilesystemIterator() 類別來統計目錄中的檔案數。


在 PHP 中使用 glob() 和 count() 函數計算目錄中的檔案數

我們可以使用 glob()count() 函數來取得目錄中的檔案數。 glob() 函數給出與指定模式相符的檔案和資料夾的陣列

我們可以使用 * 取得目錄內的所有檔案。接下來,我們可以使用 count() 函數來取得該陣列中元素的數量。

例如建立一個 $path 變量,儲存要統計檔案的目錄的準確路徑。接下來,對 $path 變數使用 glob() 函數並將該變數與 /* 連接起來。

結果,建立了 myDir 中所有檔案的陣列。最後,對 glob() 函數的結果使用 count() 函數。

這樣就可以查到myDir目錄下的檔案個數。下面的程式碼範例表示第一個範例中使用的文件結構。

範例程式碼:

<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>

輸出結果如下:

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

使用 scandir() 和 count() 函數計算 PHP 目錄中的檔案數

此方法與第二種方法類似。這裡唯一的差異是我們使用 scandir() 函數而不是 glob() 函數。

我們可以將目錄路徑作為參數提供給 scandir() 函數。函數傳回一個包含目錄內所有內容的數組,包括 ....

# 接下來,我們可以使用 count() 函數來取得目錄中內容的數量。最後,重要的部分是將 count() 函數的結果減去 2,以移除 .... 的計數。

因此,我們可以獲得目錄中文件的確切數量。

範例程式碼:

<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>

輸出結果如下:

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

以上是在 PHP 中計算目錄中的檔案個數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:lsjlt.com。如有侵權,請聯絡admin@php.cn刪除