要查询指定目录下的指定文件,包括多层子目录,可以使用递归函数来实现。下面是一个使用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
暂无评论内容