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