要查詢指定目錄下的所有指定後綴文件,您可以使用遞歸函數來搜索目錄及其所有子目錄中的所有匹配文件。
以下是一個示例代碼,演示如何使用遞歸函數來查詢指定目錄下的所有指定後綴文件:
<?php
function find_files($dir, $extension) {
$result = array();
// 打開目錄並讀取其中的文件
if (is_dir($dir)) {
$files = scandir($dir);
foreach($files as $file) {
if ($file != '.' && $file != '..') {
// 如果是目錄,則遞歸查詢子目錄
if (is_dir($dir . '/' . $file)) {
$result = array_merge($result, find_files($dir . '/' . $file, $extension));
}
// 如果是文件且文件擴展名匹配,則將其添加到結果數組中
else if (preg_match("/$extension\$/i", $file)) {
$result[] = $dir . '/' . $file;
}
}
}
}
return $result;
}
// 指定目錄和文件擴展名
$dir = "/path/to/directory";
$extension = ".php";
// 調用遞歸函數查詢匹配文件
$files = find_files($dir, $extension);
// 輸出結果
foreach($files as $file) {
echo $file . "\n";
}
?>這段代碼首先定義了一個名爲find_files的遞歸函數,該函數接受目錄路徑和文件擴展名作爲參數。在函數內部,使用scandir函數打開目錄並讀取其中的文件,然後遍歷文件列表並判斷每個文件是否是目錄或者是否與指定文件擴展名匹配。如果是目錄,則遞歸調用find_files函數來搜索子目錄;如果是匹配文件,則將其添加到結果數組中。最後,函數返回結果數組。
在主程序中,指定目錄和文件擴展名,然後調用find_files函數來查詢匹配文件。最後,使用foreach循環輸出每個匹配文件的完整路徑。