Вытащите все изображения из нескольких каталогов и отобразите их с помощью PHP - PullRequest
1 голос
/ 09 марта 2012

У меня на сервере есть папка с именем images, и в этой папке у меня может быть одна папка на целых 10 папок, содержащих изображения.

Вместо написания тега для каждого изображения

<img src="images/people/001.jpg">
<img src="images/landscape/001.jpg">

и т. Д.

Могу ли я использовать PHP, чтобы получить все изображения во всех папках в главном каталоге 'images«?

У меня ОЧЕНЬ мало опыта с PHP, поэтому я борюсь с этим.

Мне нужен php для возврата массива '<div class="box"><img src="images/FOLDER/IMAGENAME.jpg"></div>'

Может быть, кто-то может помочь.

Ответы [ 2 ]

3 голосов
/ 09 марта 2012

более простой солютон. Вы можете использовать встроенную функцию glob . Предполагая, что все ваши изображения .jpg:

$result = array();
$dir    = 'images/';

foreach(glob($dir.'*.jpg') as $filename) {
    $result[] = "<div class=\"box\"><img src=\"$filename\"></div>";
}

Тогда вы можете повторить каждый элемент $result или что угодно.

3 голосов
/ 09 марта 2012
function ListFiles($dir) {
    if($dh = opendir($dir)) {
        $files = Array();
        $inner_files = Array();
        while($file = readdir($dh)) {
            if($file != "." && $file != ".." && $file[0] != '.') {
                if(is_dir($dir . "/" . $file)) {
                    $inner_files = ListFiles($dir . "/" . $file);
                    if(is_array($inner_files)) $files = array_merge($files, $inner_files); 
                } else {
                    array_push($files, $dir . "/" . $file);
                }
            }
        }
        closedir($dh);
        return $files;
    }
}
foreach (ListFiles('/path/to/images') as $key=>$file){
    echo "<div class=\"box\"><img src=\"$file\"/></div>";
}

Как то так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...