我正在尝试用PHP设计一个程序,它允许我在一个由多个文件夹组成的已知目录中查找具有特定文件扩展名(例如.jpg,.shp等)的文件。 我将非常感谢您将需要使用哪些方法的示例代码,文档或信息。
答案 0 :(得分:11)
glob
非常简单:
<?php
foreach (glob("*.txt") as $filename) {
echo "$filename size " . filesize($filename) . "\n";
}
?>
readdir
page有一些关于递归下降的建议。
答案 1 :(得分:6)
看一下PHP的SPL DirectoryIterator。
答案 2 :(得分:2)
我相信PHP的glob()函数正是您所寻找的:
答案 3 :(得分:0)
使用readdir
获取文件列表,并使用fnmatch
计算出符合所需文件名模式的文件。在函数内完成所有这些操作,并在找到目录时调用函数。如果你实施这个问题就会问另一个问题(如果你真的不知道从哪里开始,可以发表评论)。
答案 4 :(得分:0)
glob
将获取给定目录中的所有文件,但不会获取子目录。如果你也需要,你将需要:10。得到递归,20。转到10。
这是伪伪代码:
function getFiles($pattern, $dir) {
$files = glob($dir . $pattern);
$folders = glob($dir, GLOB_ONLYDIR);
foreach ($folders as $folder) {
$files = $files + getFiles($folder);
}
return $files;
}
上面显然需要进行调整以使其正常工作,但希望你能得到这个想法(记住不要跟随目录链接到“..”或“。”或者你将处于无限循环镇。)< / p>