使用PHP readdir函數讀取目錄列表

一、介紹readdir函數

PHP readdir函數用於讀取打開目錄句柄所指的目錄,將目錄中的文件和子目錄讀取到數組中。Readdir函數可以方便地列出整個網站根目錄下的所有文件和文件夾,從而達到靈活的文件處理目的。

二、readdir函數使用示例

<?php
//打開目錄句柄
$dir_handle = opendir('/var/www/html/');
//輸出目錄中的所有文件名
while (($filename = readdir($dir_handle)) !== false) {
    echo $filename . "
"; } //關閉目錄句柄 closedir($dir_handle); ?>

以上代碼會輸出/var/www/html/目錄中的所有文件名

三、readdir函數常用應用場景

1. 讀取目錄下的所有文件

只需要將readdir函數的返回值放入一個循環中即可輸出整個目錄下的所有文件名。

<?php
//打開目錄句柄
$dir_handle = opendir('/var/www/html/');
//輸出目錄中的所有文件名
while (($filename = readdir($dir_handle)) !== false) {
    if ($filename != "." && $filename != "..") {
        echo $filename . "
"; } } //關閉目錄句柄 closedir($dir_handle); ?>

以上代碼會輸出/var/www/html/目錄中的所有文件名,並且不會輸出”.”和”..”。

2. 讀取目錄下指定類型的文件

如果只需要讀取某個類型文件,可以通過正則表達式對文件名進行篩選。

<?php
//打開目錄句柄
$dir_handle = opendir('/var/www/html/');
//輸出目錄中的所有指定類型文件名
while (($filename = readdir($dir_handle)) !== false) {
    if (preg_match("/\.txt$/i", $filename)) {
        echo $filename . "
"; } } //關閉目錄句柄 closedir($dir_handle); ?>

以上代碼會輸出/var/www/html/目錄中的所有txt文件名。

3. 讀取目錄下的所有子目錄

只需要判斷文件類型是否為目錄即可。

<?php
//打開目錄句柄
$dir_handle = opendir('/var/www/html/');
//輸出目錄中的所有子目錄
while (($filename = readdir($dir_handle)) !== false) {
    if (is_dir("/var/www/html/" . $filename)) {
        echo $filename . "
"; } } //關閉目錄句柄 closedir($dir_handle); ?>

以上代碼會輸出/var/www/html/目錄中的所有子目錄名。

4. 遞歸讀取目錄下的所有文件和子目錄

遞歸讀取目錄下的所有文件和子目錄需要使用到一個自定義函數,如下所示。

<?php
function read_all_dir($dir) {
    if (!is_dir($dir)) {
        return false;
    }
    $handle = opendir($dir);
    while (($filename = readdir($handle)) !== false) {
        if ($filename == "." || $filename == "..") {
            continue;
        }
        if (is_dir($dir . "/" . $filename)) {
            echo "" . $filename . "
"; read_all_dir($dir . "/" . $filename . "/"); } else { echo $filename . "
"; } } closedir($handle); } read_all_dir("/var/www/html/"); ?>

以上代碼會輸出/var/www/html/目錄下所有文件和子目錄的名稱,並且目錄名會被加粗顯示。

四、總結

PHP的readdir函數可以方便地讀取目錄下的所有文件和子目錄,可以用於文件處理、文件上傳、文件管理等各種場景。需要注意的是,讀取整個目錄的過程中可能會因為權限問題、文件大小等原因導致程序異常,需要根據實際情況進行調整。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/227291.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-09 16:28
下一篇 2024-12-09 16:28

相關推薦

  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python中capitalize函數的使用

    在Python的字符串操作中,capitalize函數常常被用到,這個函數可以使字符串中的第一個單詞首字母大寫,其餘字母小寫。在本文中,我們將從以下幾個方面對capitalize函…

    編程 2025-04-29
  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • Rclone複製所有目錄

    如果你需要將本地文件複製到雲端,或者從雲端複製文件到本地,Rclone是一個非常好的選擇。本文將介紹如何使用Rclone複製所有目錄。 一、安裝Rclone 首先,你需要在你的機器…

    編程 2025-04-29
  • Python字符轉列表指南

    Python是一個極為流行的腳本語言,在數據處理、數據分析、人工智能等領域廣泛應用。在很多場景下需要將字符串轉換為列表,以便於操作和處理,本篇文章將從多個方面對Python字符轉列…

    編程 2025-04-29
  • Python中set函數的作用

    Python中set函數是一個有用的數據類型,可以被用於許多編程場景中。在這篇文章中,我們將學習Python中set函數的多個方面,從而深入了解這個函數在Python中的用途。 一…

    編程 2025-04-29
  • 單片機打印函數

    單片機打印是指通過串口或並口將一些數據打印到終端設備上。在單片機應用中,打印非常重要。正確的打印數據可以讓我們知道單片機運行的狀態,方便我們進行調試;錯誤的打印數據可以幫助我們快速…

    編程 2025-04-29
  • 三角函數用英語怎麼說

    三角函數,即三角比函數,是指在一個銳角三角形中某一角的對邊、鄰邊之比。在數學中,三角函數包括正弦、餘弦、正切等,它們在數學、物理、工程和計算機等領域都得到了廣泛的應用。 一、正弦函…

    編程 2025-04-29
  • Python3定義函數參數類型

    Python是一門動態類型語言,不需要在定義變量時顯示的指定變量類型,但是Python3中提供了函數參數類型的聲明功能,在函數定義時明確定義參數類型。在函數的形參後面加上冒號(:)…

    編程 2025-04-29
  • Python中不同類型的列表

    Python是一種功能強大的編程語言,其內置數據結構之一為列表。列表可以容納任意數量的元素,並且可以存儲不同類型的數據。 一、列表的基本操作 Python的列表類型支持許多操作,如…

    編程 2025-04-29

發表回復

登錄後才能評論