在開發一個web應用程序時,有時候需要對一組文件進行批量處理,這時候就會用到文件匹配功能。PHP中提供了glob函數,可以快速方便地定位到符合我們要求的文件。
一、glob函數的基本使用
glob函數返回符合規則的文件數組。其中第一個參數$pattern為規則,可以包含通配符“*”和“?”。
$files = glob("path/to/files/*.txt"); print_r($files);
上面的代碼會返回path/to/files/目錄下的所有txt文件的文件名數組。
二、通配符的使用
通配符“*”代表任意個任意字符。例如下面的代碼會返回path/to/files/目錄下的所有txt和html文件的文件名數組。
$files = glob("path/to/files/*.{txt,html}", GLOB_BRACE); print_r($files);
通配符“?”代表一個任意字符。例如下面的代碼會返回path/to/files/目錄下的所有t開頭的txt文件名數組。
$files = glob("path/to/files/t*.txt"); print_r($files);
三、目錄遍歷的使用
除了使用通配符匹配一組文件外,我們還可以使用glob函數遍歷一個目錄樹。例如下面的代碼會返回path/to/files/目錄及其子目錄下的所有txt文件的文件名數組。
$files = glob("path/to/files/**/*.txt", GLOB_BRACE); print_r($files);
注意這裡的“**”表示任意層級的子目錄。
四、實際應用示例
下面是一個實際應用示例,我們將選擇所有在指定目錄下的圖片文件,然後刪除這些文件。
$dir = "path/to/images/"; $files = glob($dir . "*.{jpg,jpeg,png,gif}", GLOB_BRACE); foreach ($files as $file) { if (is_file($file)) { unlink($file); } }
上面的代碼首先使用glob函數選擇符合jpg、jpeg、png、gif格式的所有文件,然後使用foreach遍歷這些文件,使用is_file函數判斷是否為文件,最後使用unlink函數刪除這些文件。
五、總結
glob函數是一個非常實用的函數,在文件處理中起到很大的作用。但是,由於glob函數是基於文件系統的,所以在處理大量文件時需要注意性能問題。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/159526.html