PHP中的glob()函數是一個非常實用的方法,可以用于獲取指定目錄下的所有文件和子文件夾中的文件。
在使用glob()函數時,可以通過 "*"、"?"以及"[]" 來匹配文件名。例如,如果使用“*.txt”,則glob()函數會返回所有以.txt結尾的文件名。
$files = glob('/path/to/folder/*.txt'); print_r($files);
如果要獲取所有的文件及子文件夾中的文件,則可以使用遞歸函數來處理。下面是一個示例函數,用于獲取指定目錄下的所有文件和子文件夾中的文件。
function getFiles($dir, $ext) { $files = array(); $dir = rtrim($dir, '/'); foreach (glob($dir.'/'.$ext) as $file) { $files[] = $file; } foreach (glob($dir.'/*', GLOB_ONLYDIR) as $subdir) { $files = array_merge($files, getFiles($subdir, $ext)); } return $files; } $files = getFiles('/path/to/folder', '*.txt'); print_r($files);
在上面的示例中,getFiles()函數被遞歸調用,以便完成對指定目錄下的所有文件和子文件夾中的文件的搜索。該函數接受兩個參數,$dir和$ext。$dir表示要搜索的目錄,$ext表示要搜索的文件擴展名。函數首先將指定目錄中所有匹配 $ext 的文件添加到一個數組中。隨后,使用glob()函數獲取子文件夾的名稱,并將數組與遞歸調用getFiles()函數返回的結果合并。
遞歸調用getFiles()函數將持續進行,直到目錄中沒有子文件夾為止。在這個過程中,每個再次調用getFiles()函數都會將新的子文件夾的內容添加到數組中。最終結果就是包含所有文件的數組。
function getFiles($dir, $ext) { $files = array(); $dir = rtrim($dir, '/'); foreach (glob($dir.'/'.$ext) as $file) { $files[] = $file; } foreach (glob($dir.'/*', GLOB_ONLYDIR) as $subdir) { $files = array_merge($files, getFiles($subdir, $ext)); } return $files; } $files = getFiles('/path/to/folder', '*.txt'); print_r($files);
總結:PHP glob函數的遞歸使用為編寫程序時提供了廣闊的創作空間,它簡潔而高效,相比與其他代碼結構編寫,glob函數的遞歸使用將使代碼流程更具有展示性,同時,對于查找所有匹配文件名的操作也更為快速。
上一篇css上中下邊框