Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在文件夹/目录(PHP)中搜索特定的文件扩展名_Php_File_Directory_Search - Fatal编程技术网

在文件夹/目录(PHP)中搜索特定的文件扩展名

在文件夹/目录(PHP)中搜索特定的文件扩展名,php,file,directory,search,Php,File,Directory,Search,我正在尝试用PHP设计一个程序,它允许我在由多个文件夹组成的已知目录中查找具有特定文件扩展名(例如.jpg、.shp等)的文件。 非常感谢关于我将需要使用的方法的示例代码、文档或信息。非常简单: <?php foreach (glob("*.txt") as $filename) { echo "$filename size " . filesize($filename) . "\n"; } ?> 下面是一些关于递归下降的建议。我相信PHP的glob()函数正是您想要的

我正在尝试用PHP设计一个程序,它允许我在由多个文件夹组成的已知目录中查找具有特定文件扩展名(例如.jpg、.shp等)的文件。 非常感谢关于我将需要使用的方法的示例代码、文档或信息。

非常简单:

<?php
foreach (glob("*.txt") as $filename) {
    echo "$filename size " . filesize($filename) . "\n";
}
?>

下面是一些关于递归下降的建议。

我相信PHP的glob()函数正是您想要的:


看看PHP的SPL。

用于获取文件列表,并确定它是否符合您所需的文件名模式。在函数中执行所有这些操作,并在找到目录时调用函数。如果您在执行此操作时遇到困难,请询问另一个问题(如果您确实不知道从何处开始,请发表评论)。

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;
}

显然需要对上述内容进行调整,以使其正常工作,但希望您能明白这一点(请记住不要跟随指向“.”或“.”的目录链接,否则您将进入无限循环城)。

+1太棒了!我忽略了SPL。不过,OP应该首先熟悉一些基本知识。如果学习PHP,SPL是一个很好的起点,因为它比PHP遗留的、不一致的函数库有更多的优势。