php 快速讀取文件夾下文件列表


在讀取某個文件夾下的內容的時候 以前是使用 opendir readdir結合while循環過濾 . ..當前文件夾和父文件夾來操作的。

代碼如下:

然后偶然發現了有scandir函數 可以掃描文件夾下內容

不用再while循環讀取了 代碼如下:

這樣得到的是文件夾下的目錄和文件列表

然而大部分情況下 我們不需要文件夾目錄只需要文件 就得用 is_dir或者is_file來判斷

而且有時候比較明確加載某些特殊類型的文件 如.php  .ini等文件的話 可以直接這樣

這樣能迅速獲取某個后綴名的文件列表 能夠快速的找到你想要的文件了

后續更新(2020-05-21)

有時候我們需要指定文件夾路徑以及多個文件后綴類型,比如我要所有的 png jpg pdf 文件,該怎么辦呢?

可以scandir得到文件列表,或者while配合readdir讀取文件列表(上面有例子),然后循環得到后綴名,然后進行判斷(這是比較傳統正統的思維方式 代碼方便理解維護)

<?php
$list = scandir(".");
foreach ($list as $value) {
    // Get file extension. 獲取文件后綴名 方法太多了 這里簡單舉個例子
    $ext = pathinfo($value)['extension'];
    if (in_array($ext, array('jpg', 'pdf', 'png'))) {
        //Do something 做你需要的業務邏輯
        var_dump($value);
    }
}

這里提供另外一種思路,使用glob迅速獲取內容:

<?php
var_dump(glob('./*.{jpg,pdf,png}',GLOB_BRACE));

這種代碼可以直接根據后綴名和文件路徑進行讀取判斷過濾。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM