PHP解析文件路径的目录和子目录以及仅jpg图像类型的名称

时间:2010-02-26 00:00:37

标签: php recursion directory parsing loops

我希望修改这个php代码,在具有未知数量的子目录的单个已知目录上执行递归“搜索和显示图像”。

这是我扫描单个目录并将文件回显到html的代码:

<?php 
    foreach(glob('./img/*.jpg') as $filename)
    {
        echo '<img src="'.$filename.'"><br>';
    }
?>

鉴于基目录$base_dir="./img/";包含具有未知数量的子目录和他们自己的子目录的层,这些子目录都只包含.jpg文件类型。

基本上需要构建子目录的所有路径的数组。

1 个答案:

答案 0 :(得分:5)

前段时间我写了这个函数来遍历目录层次结构。它将返回给定文件夹中包含的所有文件路径(但不返回文件夹路径)。您应该可以轻松地修改它以仅返回名称以.jpg结尾的文件。

function traverse_hierarchy($path)
{
    $return_array = array();
    $dir = opendir($path);
    while(($file = readdir($dir)) !== false)
    {
        if($file[0] == '.') continue;
        $fullpath = $path . '/' . $file;
        if(is_dir($fullpath))
            $return_array = array_merge($return_array, traverse_hierarchy($fullpath));
        else // your if goes here: if(substr($file, -3) == "jpg") or something like that
            $return_array[] = $fullpath;
    }
    return $return_array;
}