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