(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
glob — 尋找與模式匹配的文件路徑
$pattern
, int $flags
= 0): array|false
glob() 函數依照 libc glob() 函數使用的規則尋找所有與
pattern
匹配的文件路徑,類(lèi)似于一般 shells
所用的規則一樣。
pattern
匹配模式(pattern)。 不進(jìn)行縮寫(xiě)擴展或參數替代。
特殊字符:
*
- 匹配零個(gè)或多個(gè)字符。
?
- 只匹配單個(gè)字符(任意字符)。
[...]
- 匹配一組字符中的一個(gè)字符。
如果第一個(gè)字符是 !
,則為否定模式,
即匹配不在這組字符中的任意字符。
\
- 只要沒(méi)有使用 GLOB_NOESCAPE
標記,該字符會(huì )轉義后面的字符。
flags
有效標記有:
GLOB_MARK
- 在每個(gè)返回的項目中加一個(gè)斜線(xiàn)
GLOB_NOSORT
- 按照文件在目錄中出現的原始順序返回(不排序)
GLOB_NOCHECK
- 如果沒(méi)有文件匹配則返回用于搜索的模式
GLOB_NOESCAPE
- 反斜線(xiàn)不轉義元字符
GLOB_BRACE
- 擴充 {a,b,c} 來(lái)匹配 'a','b' 或 'c'
GLOB_ONLYDIR
- 僅返回與模式匹配的目錄項
GLOB_ERR
- 停止并讀取錯誤信息(比如說(shuō)不可讀的目錄),默認的情況下忽略所有錯誤
注意:
GLOB_BRACE
在一些非 GNU 系統上無(wú)效,比如 Solaris 和 Alpine Linux 。
返回包含有匹配文件和目錄的數組,沒(méi)有匹配文件時(shí)返回空數組,出錯返回 false
。
注意:
在個(gè)別操作系統上,無(wú)法區分是否為空匹配或錯誤。
示例 #1 怎樣用 glob() 方便地替代 opendir() 和相關(guān)函數
<?php
foreach (glob("*.txt") as $filename) {
echo "$filename size " . filesize($filename) . "\n";
}
?>
以上例程的輸出類(lèi)似于:
funclist.txt size 44686 funcsummary.txt size 267625 quickref.txt size 137820