首頁  >  文章  >  後端開發  >  如何使用glob方法遍歷資料夾下所有檔案的相關方法

如何使用glob方法遍歷資料夾下所有檔案的相關方法

jacklove
jacklove原創
2018-06-09 10:34:402165瀏覽

遍歷資料夾下所有文件,一般可以使用opendirreaddir 方法來遍歷。

範例:找出指定目錄下的所有php檔案(不搜尋子資料夾),程式碼如下:

<?php$path = dirname(__FILE__);$result = traversing($path);
print_r($result);function traversing($path){
    $result = array();    if($handle = opendir($path)){        while($file=readdir($handle)){            if($file!=&#39;.&#39; && $file!=&#39;..&#39;){                if(strtolower(substr($file, -4))==&#39;.php&#39;){
                    array_push($result, $file);
                }
            }
        }
    }    return $result;
}?>

如使用glob方法來遍歷則可以簡化程式碼

<?php$path = dirname(__FILE__);$result = glob($path.&#39;/*.php&#39;);
print_r($result);?>

注意,glob回傳的會是path 搜尋結果的路徑,例如path='/home/fdipzone',以上範例則回傳

Array(
    [0] => /home/fdipzone/a.php
    [1] => /home/fdipzone/b.php
    [2] => /home/fdipzone/c.php
)

這是與opendir,readdir傳回的結果不同的地方。

如果只是遍歷目前目錄。可以改成這樣:glob('*.php');
glob語法說明:

array glob ( string $pattern [, int $flags = 0 ] )

glob () 函數依照libc glob() 函數所使用的規則尋找所有與pattern 相符的檔案路徑,類似一般shells 所使用的規則一樣。不進行縮寫擴充或參數替代。 glob使用正規匹配路徑功能強大。

flags 有效標記有:
GLOB_MARK - 在每個傳回的項目中加上一個斜線
GLOB_NOSORT -依照檔案在目錄中出現的原始順序傳回(不排序)
GLOB_NOCHECK - 如果沒有檔案比對則傳回用於搜尋的模式
GLOB_NOESCAPE - 反斜線不轉義元字元
GLOB_BRACE - 擴充{a,b,c} 來符合'a','b' 或'c'
GLOB_ONLYDIR - 僅傳回與模式相符的目錄項目
GLOB_ERR - 停止並讀取錯誤訊息(比如說不可讀的目錄),預設的情況下忽略所有錯誤

範例: 使用glob方法遍歷指定資料夾(包括子資料夾)下所有php檔案

<?php$path = dirname(__FILE__);$result = array();
traversing($path, $result);
print_r($result);function traversing($path, &$result){
    $curr = glob($path.&#39;/*&#39;);    if($curr){        foreach($curr as $f){            if(is_dir($f)){
                array_push($result, $f);
                traversing($f, $result);
            }elseif(strtolower(substr($f, -4))==&#39;.php&#39;){
                array_push($result, $f);
            }
        }
    }
}?>

本文講解如何使用glob方法遍歷資料夾下所有檔案的相關方法,更多相關內容請關注php中文網。

相關推薦:

關於php 浮點數比較方法的解說

透過mysql匯出查詢結果到csv方法的講解

php array_push 與$arr[]=$value 之間的效能比較

以上是如何使用glob方法遍歷資料夾下所有檔案的相關方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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