首頁  >  文章  >  後端開發  >  php 實作資料夾遍歷

php 實作資料夾遍歷

PHPz
PHPz原創
2023-05-29 16:39:393169瀏覽

PHP 是一種非常流行的程式語言,可以用它來實現各種各樣的操作。其中,遍歷資料夾並取得其中的文件資訊是經常需要用到的操作。在本文中,我將介紹如何用 PHP 實作資料夾遍歷。

  1. opendir() 函數

opendir() 函數是 PHP 用來開啟資料夾的函數,在呼叫函數時需要傳入資料夾路徑作為參數。在資料夾開啟成功後,可以透過 readdir() 函數讀取資料夾中的內容。

範例程式碼:

$dir = './test';  //文件夹路径
$handle = opendir($dir);  //打开文件夹
while ($file = readdir($handle)) {  //循环读取所有文件
    if ($file != "." && $file != "..") {  //排除"."和".."两个特殊的文件夹
        echo $file."<br>";  //输出文件名
    }
}
closedir($handle);  //关闭文件夹

在上面的範例程式碼中,我開啟了一個名為「test」 的資料夾,並循環讀取了該資料夾中的所有檔案名,並忽略了“.” 和“..” 兩個特殊的資料夾。

  1. is_dir() 函數和遞歸遍歷

如果要遍歷一個目錄下的所有子目錄和文件,我們可以使用遞歸方法。在遍歷過程中,我們還需要判斷目前遍歷到的是資料夾還是文件,可以使用 is_dir() 函數來進行判斷。

範例程式碼:

function scanDir($dir){
    if(!is_dir($dir)){
        echo '不是一个有效的文件夹路径';
        return;
    }
    $handle = opendir($dir);  //打开文件夹
    while($file = readdir($handle)){  //循环读取所有文件
        if($file == '.' || $file == '..'){  //忽略掉 ".",".." 特殊文件夹
            continue;
        }
        $path = $dir.'/'.$file;  //当前文件或文件夹的完整路径
        if(is_dir($path)){  //如果是一个文件夹
            echo '<b>'.$file.'</b><br>';  //输出文件夹名称
            scanDir($path);  //递归遍历子文件夹
        }else{  //如果是一个文件
            echo $file.'<br>';  //输出文件名称
        }
    }
    closedir($handle);  //关闭文件夹
}

在上面的範例程式碼中,我定義了一個函數 scanDir(),該函數接受一個資料夾路徑作為參數。在函數內部,我先判斷傳入的路徑是否為資料夾。如果不是資料夾,則直接傳回。

接下來,我打開資料夾,並循環讀取其中的檔案和資料夾。當遍歷到資料夾時,我會輸出資料夾名稱,並遞歸呼叫 scanDir() 函數遍歷子資料夾。當遍歷到文件時,我只是輸出文件名稱。

  1. scandir() 函數

PHP 也提供了一個非常簡單的函數scandir(),可以用來一次取得一個資料夾下的所有文件和資料夾名稱。和 opendir() 函數不同的是,該函數傳回的是一個數組,數組中包含了所有子資料夾和檔案的名稱。

範例程式碼:

$dir = './test';  //文件夹路径
$files = scandir($dir);  //获取文件夹下所有文件和文件夹名称
foreach($files as $file){  //循环遍历
    if($file == '.' || $file == '..'){  //忽略掉 ".",".." 特殊文件夹
        continue;
    }
    echo $file.'<br>';  //输出文件或文件夹名称
}

在上面的範例程式碼中,我呼叫了scandir() 函數取得了資料夾下所有檔案和資料夾名稱,並循環遍歷了這個陣列。同樣地,我忽略了兩個特殊的資料夾 “.” 和 “..”,只輸出了資料夾和檔案的名稱。

總結

在本文中,我介紹如何用 PHP 實作資料夾遍歷,並示範了三種不同的方式。透過 opendir() 和 readdir() 函數,我們可以循環讀取一個資料夾下的所有檔案和資料夾,並透過判斷檔案類型進行對應的操作。透過遞歸遍歷,我們可以遍歷一個目錄下的所有子目錄和檔案。透過 scandir() 函數,我們一次取得了一個資料夾下的所有子資料夾和檔案名稱。如果您需要在 PHP 中遍歷資料夾,希望本文可以為您提供一些參考。

以上是php 實作資料夾遍歷的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:php 設定url下一篇:php 設定url