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