Каталог синтаксического анализа PHP и подкаталоги для путей к файлам и имен только для изображений jpg - PullRequest
3 голосов
/ 26 февраля 2010

Я хочу изменить этот php-код для рекурсивного «поиска и отображения изображения» в одном известном каталоге с неизвестным количеством подкаталогов.

Вот код, который у меня есть, который сканирует один каталог и выводит файлы в html:

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

Учитывая, что базовый каталог $base_dir="./img/"; содержит подкаталоги с неизвестными количествами и уровнями своих собственных подкаталогов, которые все включают только типы файлов .jpg.

В основном нужно создать массив всех путей подкаталогов.

1 Ответ

5 голосов
/ 26 февраля 2010

Некоторое время назад я написал эту функцию для обхода иерархии каталогов. Он вернет все пути к файлам, содержащиеся в данной папке (но не пути к папкам). Вы легко сможете изменить его, чтобы он возвращал только файлы, имя которых заканчивается на .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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...