Отображаем все картинки из директории при помощи PHP
Случилось так, что подготавливая материалы для одного из будущих постов о забавной старой MS-DOS игре, мне понадобилось сделать скриншот около 500 маленьких иконок-спрайтов, собранных все вместе рядом и в заданном количестве колонок. Искать и устанавливать специальный софт чтобы генерировать коллажи картинок было не охота, задача очень проста и решилась в два десятка строк на PHP. Выводим все найденные картинки из директории в виде таблички и задаем фон - все просто, как в 1м классе.
Содержание:
Подготовка
Итак, список действий для данной задачки:
- открыть директорию;
- отсеять все файлы что не являются картинками по расширению png, jpg, gif;
- вывести каждый рисунок в табличке с заданным количеством колонок и цветом фона.
Для тестирования и разработки на PHP подобных скриптов всегда удобно держать под рукой сборку с локальным веб-сервером Apache+PHP. В принципе подойдет любой локальный веб-сервер, я же использую OpenServer - он бесплатен, прост в установке и настройке.
Вот самое простое решение на PHP, написанное за несколько минут:
// show images in grid
$columns = 15;
$background = '#DBEAF9';
$images_dir = 'images/';
$count = 1;
echo '<table style="background: '.$background.'"><tr>';
if(is_dir($images_dir)) {
if ($h = opendir($images_dir)) {
while (($file = readdir($h)) !== false) {
if(preg_match("#\.(jpg|gif|png)$#i", $file)) {
echo '<td><img src="'.$images_dir.$file.'" /></td>';
$count++;
if( ($count%$columns)==0 )
echo '</tr><tr>';
}
}
closedir($h);
}
}
echo '</tr></table>';
Все картинки из директории, что размещена там же где и файл-скрипт, будут выведены в виде таблици с количеством колонок равным 15. Цвет фона таблици - #DBEAF9.
Результат
Вот что получается в результате генерации HTML кода скриптом:
Заключение
Вот такое простое решение простой задачи на PHP. При сборе и обработке информации, картинок и прочих ресурсов уже очень часто сталкиваюсь с подобными задачами, для которых не обязательно качать у устанавливать массу разного софта, достаточно вспомнить что под рукой есть простой и удобный инструмент - скриптовый язык программирования PHP.
Вообще любой язык программирования при умелом обращении, в целях автоматизации, может сэкономить массу времени при решении разных рутинных задач. Представьте только себе, к примеру, если бы эти 500 картинок взять и вручную по сращивать в Фотошопе - даже представить страшно сколько на это уйдет времени.