= 4.3.0, PHP 5, PHP 7, PHP 8)glob — 尋找與模式匹配的文件路徑說明glob(string $pattern, int $flags = 0): array|falseglob() 函數(shù)依照 libc glob() 函數(shù)使用的規(guī)則尋找所有與 p">

glob

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

glob尋找與模式匹配的文件路徑

說明

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

glob() 函數(shù)依照 libc glob() 函數(shù)使用的規(guī)則尋找所有與 pattern 匹配的文件路徑,類似于一般 shells 所用的規(guī)則一樣。

參數(shù)

pattern

匹配模式(pattern)。 不進行縮寫擴展或參數(shù)替代。

特殊字符:

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

flags

有效標記有:

  • GLOB_MARK - 在每個返回的項目中加一個斜線
  • GLOB_NOSORT - 按照文件在目錄中出現(xiàn)的原始順序返回(不排序)
  • GLOB_NOCHECK - 如果沒有文件匹配則返回用于搜索的模式
  • GLOB_NOESCAPE - 反斜線不轉(zhuǎn)義元字符
  • GLOB_BRACE - 擴充 {a,b,c} 來匹配 'a','b' 或 'c'
  • GLOB_ONLYDIR - 僅返回與模式匹配的目錄項
  • GLOB_ERR - 停止并讀取錯誤信息(比如說不可讀的目錄),默認的情況下忽略所有錯誤

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

返回值

返回包含有匹配文件和目錄的數(shù)組,沒有匹配文件時返回空數(shù)組,出錯返回 false。

注意:

在個別操作系統(tǒng)上,無法區(qū)分是否為空匹配或錯誤。

范例

示例 #1 怎樣用 glob() 方便地替代 opendir() 和相關(guān)函數(shù)

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

以上例程的輸出類似于:

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

注釋

注意: 此函數(shù)不能作用于遠程文件,被檢查的文件必須是可通過服務(wù)器的文件系統(tǒng)訪問的。

注意: 此函數(shù)在一些系統(tǒng)上還不能工作(例如一些舊的 Sun OS)。

參見