尋找與模式匹配的檔案路徑

glob

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

glob尋找與模式匹配的檔案路徑

說明

glob(string $pattern, int $flags = 0): array|false

glob() 函式依照 libc glob() 函式使用的規則尋找所有與 pattern 匹配的檔案路徑,類似於一般 shells 所用的規則一樣。

參數

pattern

匹配模式(pattern)。 不進行縮寫擴充套件或參數替代。

特殊字元:

  • * - 匹配零個或多個字元。
  • ? - 只匹配單個字元(任意字元)。
  • [...] - 匹配一組字元中的一個字元。 如果第一個字元是 !,則為否定模式, 即匹配不在這組字元中的任意字元。
  • \ - 只要沒有使用 GLOB_NOESCAPE 標記,該字元會轉義後面的字元。

flags

有效標記有:

  • GLOB_MARK - 在每個返回的專案中加一個斜線
  • GLOB_NOSORT - 按照檔案在目錄中出現的原始順序返回(不排序)
  • GLOB_NOCHECK - 如果沒有檔案匹配則返回用於搜索的模式
  • GLOB_NOESCAPE - 反斜線不轉義元字元
  • GLOB_BRACE - 擴充 {a,b,c} 來匹配 'a','b' 或 'c'
  • GLOB_ONLYDIR - 僅返回與模式匹配的目錄項
  • GLOB_ERR - 停止並讀取錯誤資訊(比如說不可讀的目錄),預設的情況下忽略所有錯誤

注意: GLOB_BRACE 在一些非 GNU 系統上無效,比如 Solaris 和 Alpine Linux 。

返回值

返回包含有匹配檔案和目錄的陣列,沒有匹配檔案時返回空陣列,出錯返回 false

注意:

在個別操作系統上,無法區分是否為空匹配或錯誤。

範例

示例 #1 怎樣用 glob() 方便地替代 opendir() 和相關函式

<?php
foreach (glob("*.txt") as $filename) {
    echo 
"$filename size " filesize($filename) . "\n";
}
?>

以上例程的輸出類似於:

funclist.txt size 44686
funcsummary.txt size 267625
quickref.txt size 137820

註釋

注意: 此函式不能作用於遠端檔案,被檢查的檔案必須是可通過伺服器的檔案系統訪問的。

注意: 此函式在一些系統上還不能工作(例如一些舊的 Sun OS)。

參見

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *