【发布时间】:2010-12-21 15:48:55
【问题描述】:
我正在尝试用 PHP 设计一个程序,它允许我在包含多个文件夹的已知目录中查找具有特定文件扩展名的文件(例如 .jpg、.shp 等)。 非常感谢有关我将需要使用哪些方法的示例代码、文档或信息。
【问题讨论】:
我正在尝试用 PHP 设计一个程序,它允许我在包含多个文件夹的已知目录中查找具有特定文件扩展名的文件(例如 .jpg、.shp 等)。 非常感谢有关我将需要使用哪些方法的示例代码、文档或信息。
【问题讨论】:
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;
}
显然需要对以上内容进行调整以使其正常工作,但希望您能明白这一点(请记住不要将目录链接指向“..”或“.”,否则您将进入无限循环小镇)。
【讨论】:
看看 PHP 的 SPL DirectoryIterator。
【讨论】:
我相信 PHP 的 glob() 函数正是您想要的:
【讨论】:
glob 很简单:
<?php
foreach (glob("*.txt") as $filename) {
echo "$filename size " . filesize($filename) . "\n";
}
?>
readdir page 有一些关于递归下降的建议。
【讨论】: