PHP 查询指定目录下面指定的文件

要查询指定目录下的指定文件,包括多层子目录,可以使用递归函数来实现。下面是一个使用PHP递归查询指定目录下文件的示例代码:

function searchFiles($dir, $filename) {
    // 遍历目录
    $files = scandir($dir);

    foreach ($files as $file) {
        if ($file === '.' || $file === '..') {
            continue;
        }

        $path = $dir . '/' . $file;

        if (is_dir($path)) {
            // 如果是目录,则递归调用searchFiles函数
            searchFiles($path, $filename);
        } else {
            // 如果是文件,则判断是否与指定文件名匹配
            if ($file === $filename) {
                echo $path . "\n";
            }
        }
    }
}

// 调用searchFiles函数进行查询
$searchDir = '/path/to/directory'; // 替换为你要查询的目录路径
$searchFile = 'example.txt'; // 替换为你要查询的文件名
searchFiles($searchDir, $searchFile);

/path/to/directory替换为你要查询的目录路径,将example.txt替换为你要查询的文件名。这个函数会遍历指定目录及其子目录中的所有文件,并打印出与指定文件名匹配的文件路径。

请注意,以上代码仅提供了基本的查询功能,如果你需要更复杂的查询条件或者对查询结果进行处理,可以根据实际需求进行修改。

新版本:

function searchFiles($dir, $filename) {
    // 遍历目录
    $files = scandir($dir);

    foreach ($files as $file) {
        if ($file === '.' || $file === '..') {
            continue;
        }
        $path = $dir . '/' . $file;

        if (is_dir($path)) {
            // 如果是目录,则递归调用searchFiles函数
            $result = searchFiles($path, $filename);
            if ($result !== false) {
                return $result; // 如果找到匹配的文件,则直接返回路径
            }
        } else {
            // 如果是文件,则判断是否与指定文件名匹配
            if ($file === $filename) {
                return $path; // 找到匹配的文件,返回路径
            }
        }
    }
    
    return false; // 循环结束时仍未找到匹配的文件,返回false
}

 

© 版权声明
THE END
喜欢就支持一下吧
点赞8
评论 抢沙发

请登录后发表评论

    暂无评论内容