(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