Отображаем все картинки из директории при помощи 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 ''; if(is_dir($images_dir)) < if ($h = opendir($images_dir)) < while (($file = readdir($h)) !== false) < if(preg_match("#\.(jpg|gif|png)$#i", $file)) < echo ' '; $count++; if( ($count%$columns)==0 ) echo ' '; > > closedir($h); > > echo '
';
Все картинки из директории, что размещена там же где и файл-скрипт, будут выведены в виде таблици с количеством колонок равным 15. Цвет фона таблици — #DBEAF9 .
Результат
Вот что получается в результате генерации HTML кода скриптом:
Заключение
Вот такое простое решение простой задачи на PHP. При сборе и обработке информации, картинок и прочих ресурсов уже очень часто сталкиваюсь с подобными задачами, для которых не обязательно качать у устанавливать массу разного софта, достаточно вспомнить что под рукой есть простой и удобный инструмент — скриптовый язык программирования PHP.
Вообще любой язык программирования при умелом обращении, в целях автоматизации, может сэкономить массу времени при решении разных рутинных задач. Представьте только себе, к примеру, если бы эти 500 картинок взять и вручную по сращивать в Фотошопе — даже представить страшно сколько на это уйдет времени.
Вывод всех картинок из папки на PHP
Если Вы делали сайт-визитку, то перед Вами могла встать задача по выводу какого-нибудь портфолио, каких-то работ, другими словами, изображений. Предположим, Admin-панели у сайта нет, а вот новые работы заказчик должен добавлять максимально легко, не залезая в исходный код. Вот в таких случаях Вам очень поможет данная статья, в которой мы реализуем вывод всех картинок из папки на PHP.
Привожу сразу весь PHP-код:
$dir = ‘images/’; // Папка с изображениями
$cols = 3; // Количество столбцов в будущей таблице с картинками
$files = scandir($dir); // Берём всё содержимое директории
echo «
«; // Начинаем столбец $path = $dir.$files[$i]; // Получаем путь к картинке echo «»; // Делаем ссылку на картинку echo ««; // Вывод превью картинки echo «»; // Закрываем ссылку echo « |
«; // Закрываем таблицу
?>
Разумеется, здесь идёт смесь представления и реализации, что, конечно, нехорошо, но данный скрипт Вы должны будете подстроить под свой движок. Возможно, у Вас и таблиц не будет. В остальном, думаю, проблем с понимаем, как вывести на сайт изображения из папки на PHP, возникнуть не должно.
Теперь для того, чтобы добавить очередное изображение на сайт, достаточно просто скопировать необходимую картинку в папку «images«. Вот таким простым способом реализуется задача, которая, на первый взгляд, неразрешима без вмешательства в исходный код, базу данных, либо создания Admin-панели.
Создано 19.10.2012 08:43:41
Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!
Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.
Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Порекомендуйте эту статью друзьям:
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
- Кнопка:
Она выглядит вот так: - Текстовая ссылка:
Она выглядит вот так: Как создать свой сайт - BB-код ссылки для форумов (например, можете поставить её в подписи):
Вывод всех изображений из папки
Здравствуйте, ни как не могу вывести все изображения из заданной папки..((
Скрипт сканирует папку на наличие файлов, и должен их выводить.
но он этого не делает.
если же использовать скрипт без функции — то изображения выводятся, если использовать только функцию и указывать название файла, то он тоже отображается. а вот если соединить все вместе, то ничего не получается. (((( в чем может быть проблема??
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
header('Content-type: image/jpeg'); function imageresize($outfile,$infile,$percents,$quality) { $im=imagecreatefromjpeg($infile); $w=imagesx($im)*$percents/200; $h=imagesy($im)*$percents/200; $im1=imagecreatetruecolor($w,$h); imagecopyresampled($im1,$im,0,0,0,0,$w,$h,imagesx($im),imagesy($im)); imagejpeg($im1,$outfile,$quality); imagedestroy($im); imagedestroy($im1); } $path=GetCWD()."/uploads"; $dir = opendir($path); if((readdir($dir))!== false) closedir($dir); } ?>
Вывод всех изображений php
Гостей: 8
Гости: | |
[Ваш IP] | 07:34:18 |
/Статьи | |
185.191.171.24 | 07:33:22 |
Поиск по тегам | |
185.191.171.33 | 07:32:49 |
Поиск по тегам | |
114.119.139.185 | 07:32:35 |
Поиск по тегам | |
85.208.96.194 | 07:31:54 |
Поиск по тегам | |
185.191.171.16 | 07:30:32 |
Поиск по тегам | |
185.191.171.11 | 07:30:20 |
Поиск по тегам | |
185.191.171.9 | 07:30:16 |
Поиск по тегам |
Всего пользователей: 55
Новый пользователь: antalyaliali
JS- утилиты, фреймворки → Syntax Highlighter [1269]
PHP скрипты → Скрипт для проверки . [1053]
JS- утилиты, фреймворки → JQuery TimeAgo [968]
JS- утилиты, фреймворки → JQuery Form [923]
JS- утилиты, фреймворки → JQuery Validation Pl. [4035]
Безопасность → DKIM-подпись для почтового домена в I. [18347]
Собственное мнение → Page Rank и тИЦ ушли в небытие. [4534]
Собственное мнение → isset и empty — функции? Нет! [8096]
Программирование → PHP-Fusion: переход с mysql на mysqli. [8831]
Программирование → Перевод CMS PHP-Fusion с mysql_* на m. [6603]
.htaccess → Блокируем доступ к скрытым дирек.
HTML → Шаблон страницы HTML 4.01 Strict
JavaScript, JQuery → Частичное обновление страницы
CSS → Как сделать, чтобы кнопки при на.
.htaccess → Разрешаем любым файлам обрабатыв.
Да, смайлы зачетные )) Уже не помню, где брал их. Это далеко не все, лень добавлять просто, их там штук 70
→ На картеКупить AMWAY в Ярославле Приобрести высококачественную продукцию Амвей в Ярославле, получить консультации по бизнесу, заказать продукцию или получить заказ:
●Адрес: улица Валентины Терешковой, дом 1 (Вход со двора)
●Телефон:+7 (920) 112-00-91
●Email:matyxho@mail.ru
●Сайт:https://www.amway.ru/user/lebedem
●Визитка:http://yar.meweb.ru
При создании одного из плагинов понадобилось мне показать все изображения из указанной папки (директории). Признаться, раньше я не работал с подобным, но все новое всегда вызывает азарт. Поэтому, чуть погуглив и покурив мануалы, я набросал несколько строк кода, коими и поделюсь с вами.
Pisatel 06 Апрель 2015 15:36:11 28429 Прочтений
Обновлено: 06 апреля 2015 16:00:17
В данной статье приведу небольшой скрипт, который ищет изображения в указанной папке (директории) и выводит их. Для начала — вывод всех изображений из папки (как всегда- комментарии прямо в коде):
$wimage = "";
$fimg = "";
$path = "images/"; // задаем путь до сканируемой папки с изображениями
$images = scandir($path); // сканируем папку
if ($images !== false) < // если нет ошибок при сканировании
$images = preg_grep("/\.(?:png|gif|jpe?g)$/i", $images); // через регулярку создаем массив только изображений
if (is_array($images)) < // если изображения найдены
foreach($images as $image) < // делаем проход по массиву
$fimg .= "";
>
$wimage .= $fimg;
> else < // иначе, если нет изображений
$wimage .= "Не обнаружено изображений в директории!\n";
>
> else < // иначе, если директория пуста или произошла ошибка
$wimage .= "Директория пуста или произошла ошибка при сканировании.";
>
echo $wimage; // выводим полученный результат
Однако, задачи бывают разные. Попробую привести несколько примеров. Например, нам необходимо вывести не все изображения, а только первые 10. Для этого нужно будет лишь задать дополнительное условие при проходе по массиву. Итак, код с комментариями:
$stop = 9; // на 1 меньше, так как ключи в массиве начинаются с 0, то есть
// 0, 1, 2. значит первые 10 значений закончатся на ключе 9
foreach($images as $key => $image) < // делаем проход по массиву, выбирая ключ =>значение
$fimg .= "";
if ($stop == $key) break; // останавливаем проход по массиву, когда 9==9
>
Следующий пример — выберем, например, каждое второе изображение:
foreach($images as $key => $image) < // делаем проход по массиву, выбирая ключ =>значение
if ($key % 2 == 0) < // если целочисленный остаток от деления ключа на 2 равен 0
$fimg .= "";
> else < // иначе
continue; // пропускаем изображение
>
>
Ну и на закуску — выберем 5 случайных (рандомных) изображений из папки (каталога). Для этого я воспользуюсь php–функцией array_rand(); , и код придется чуть усложнить, увеличив буквально на пару строк:
$arand = array_rand($images, 5); // получили массив 5 случайных ключей (ключ массива => ключ изображения)
$i = 0;
foreach($images as $key => $image) < // проход по массиву
if ($arand[$i] == $key)
// если значение случайного ключа равно текущему ключу- выводим изображение
$fimg .= "";
> else < // иначе
continue; // пропускаем
>
$i++;
>
Если кто–то сможет сделать это более изящно — милости прошу. Я лично всегда стараюсь использовать для работы с массивами функции, которые специально предназначены для работы с ними и не изобретать велосипедов.
На этом, в общем, и закончу. Удачи в кодинге и процветания твоему проекту!
Все изображения из папки PHP
Вот выдалось немного свободного времени и решил отписаться о том какие сегодня стояли задачи передо мной. А стояла передо мной задача вывести весь список mini изображений из определенной папки. Для чего это понадобилось? Есть некая система где в панели администратора можно добавлять товар заполнив некоторые поля, но вот незадача, возможно нужная картинка товара уже была загружена ранее и чтоб не грузить ее еще раз была написано функция которая отображала все картинки с возможностью выбора из уже загруженных.
Саму систему выборки и добавления я разумеется рассматривать не буду а покажу пример как просто такое можно реализовать с помощью php функции glob(); Перейдем сразу к написанию функции назовем ее search_img().
function search_img($path) //$path — папка из которой выводи;
// обходим папку циклом
$html=»; // переменная которую заполним изображениями
foreach (glob($path.»*.jpg») as $filename) // jpg — файлы с каким расширением нам нужны;
$html .= »;
>
return $html; // отдаем переменую
>
Пример использования:
echo search_img(«img/»); // выводим
Вот собственно и все, функцию можете дорабатывать под ваши нужны и использовать.